diff --git a/lang/module.c b/lang/module.c index 3222bca..681e737 100644 --- a/lang/module.c +++ b/lang/module.c @@ -130,9 +130,8 @@ abort_print("Couldn't find module by info"); } -// Creates a module and stores it in a mapping -// Assumes all dependencies already exist -Object create_module( +// Creates a list of module uses +Object create_module_use_list( VmState state, struct module_mapping *mapping, const ModuleInfo *info) { int use_count = 0; for (const char **use = info->uses; *use != NULL; ++use) @@ -149,6 +148,14 @@ object_list_set( state, use_modules, use_modules_next++, use_module); } + return use_modules; +} + +// Creates a module and stores it in a mapping +// Assumes all dependencies already exist +Object create_module( + VmState state, struct module_mapping *mapping, const ModuleInfo *info) { + Object use_modules = create_module_use_list(state, mapping, info); Object module = info->create(state, use_modules); return module; }