diff --git a/src/module.c b/src/module.c index 052fb39255808232a87e303d8f130f489be5b941..efbfe4c9bcbee2d382861ca4ebd33c95dbf11ea1 100644 --- a/src/module.c +++ b/src/module.c @@ -17,7 +17,7 @@ #include "modules/modlist_headers.h" -RCSID("$Id: module.c,v 1.8 1998/03/28 15:10:50 grubba Exp $"); +RCSID("$Id: module.c,v 1.9 1998/04/24 00:30:44 hubbe Exp $"); typedef void (*modfun)(void); @@ -36,26 +36,21 @@ static struct static_module module_list[] = { void init_modules(void) { + struct program *p; unsigned int e; - struct mapping *m = allocate_mapping(10); - push_text("_static_modules"); - ref_push_mapping(m); - f_add_constant(2); + + start_new_program(); for(e=0;e<NELEM(module_list);e++) { - struct program *p; - struct pike_string *s; start_new_program(); module_list[e].init(); - p=end_program(); - - push_text(module_list[e].name); - push_program(p); - mapping_insert(m, sp-2, sp-1); - pop_n_elems(2); + end_class(module_list[e].name,0); } - free_mapping(m); + push_text("_static_modules"); + push_object(low_clone(p=end_program())); + f_add_constant(2); + free_program(p); } void exit_modules(void)