diff --git a/src/constants.c b/src/constants.c index 090cb93f2234abaa810ae2a8b809860550a893af..818180f2e9b46ebbfe704388ef2745529d8c23ed 100644 --- a/src/constants.c +++ b/src/constants.c @@ -15,7 +15,7 @@ #include "error.h" #include "block_alloc.h" -RCSID("$Id: constants.c,v 1.15 1999/03/02 03:13:13 hubbe Exp $"); +RCSID("$Id: constants.c,v 1.16 1999/04/08 23:54:26 hubbe Exp $"); static INT32 num_callable=0; static struct mapping *builtin_constants = 0; @@ -153,12 +153,13 @@ void quick_add_efun(char *name, int name_length, void cleanup_added_efuns(void) { +#ifdef DO_PIKE_CLEANUP if(builtin_constants) { free_mapping(builtin_constants); builtin_constants=0; } - free_all_callable_blocks(); +#endif } void count_memory_in_callables(INT32 *num_, INT32 *size_) { diff --git a/src/interpret.c b/src/interpret.c index 78f982624e6a91e802996d7b61d34add2a44587f..99f785f6404524ad80d4ee49aa745b70e7f4f3f4 100644 --- a/src/interpret.c +++ b/src/interpret.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: interpret.c,v 1.118 1999/03/19 11:43:14 hubbe Exp $"); +RCSID("$Id: interpret.c,v 1.119 1999/04/08 23:54:28 hubbe Exp $"); #include "interpret.h" #include "object.h" #include "program.h" @@ -1351,5 +1351,7 @@ void cleanup_interpret(void) void really_clean_up_interpret(void) { +#ifdef DO_PIKE_CLEANUP free_all_pike_frame_blocks(); +#endif } diff --git a/src/main.c b/src/main.c index dd7257fbc7d024265c72b8a1be98970cf662a8fc..e671588249014661ee94bfb4f06629c4aec912dc 100644 --- a/src/main.c +++ b/src/main.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: main.c,v 1.68 1999/04/08 22:27:07 hubbe Exp $"); +RCSID("$Id: main.c,v 1.69 1999/04/08 23:54:29 hubbe Exp $"); #include "fdlib.h" #include "backend.h" #include "module.h" @@ -540,7 +540,6 @@ void low_exit_main(void) free_svalue(& throw_value); throw_value.type=T_INT; - exit_destroy_called_mark_hash(); #if defined(PIKE_DEBUG) && defined(DEBUG_MALLOC) if(verbose_debug_exit) { @@ -610,7 +609,12 @@ void low_exit_main(void) cleanup_shared_string_table(); #endif - cleanup_callbacks(); + really_clean_up_interpret(); +#ifdef DO_PIKE_CLEANUP + cleanup_callbacks(); + free_all_callable_blocks(); + exit_destroy_called_mark_hash(); +#endif }