+ // Can't wrap the following in the scm_c_define_module call since
+ // the init code may need module_ operative.
+ if (init)
+ scm_c_call_with_current_module (module_, call_trampoline, static_cast <void *> (&init));
+ // Verify that every Variable has a definition, either because of
+ // getting initialized with a value at definition or because of the
+ // init call providing one.
+ for (Variable_record *p = variables_; p; )
+ {
+ Variable_record *next = p->next_;
+ if (SCM_UNBNDP (SCM (*p->var_)))
+ error (_f ("Uninitialized variable `%s' in module (%s)", p->name_, name_));
+ delete p;
+ p = next;
+ }
+ variables_ = 0;