X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fsave.c;h=716001fd69850038f0ac0d5f061b99b2fa81f68a;hb=0520c59af85dca3ddf8c06303b44a0943c83b451;hp=da7334949a7179b748c650b58e9e653fd5ca0278;hpb=cd2c70c8b5d4dcc62b968f5a9bedd3c9c8698e82;p=sbcl.git diff --git a/src/runtime/save.c b/src/runtime/save.c index da73349..716001f 100644 --- a/src/runtime/save.c +++ b/src/runtime/save.c @@ -25,6 +25,9 @@ #include "validate.h" #include "gc-internal.h" +#include "genesis/static-symbols.h" +#include "genesis/symbol.h" + static long write_bytes(FILE *file, char *addr, long bytes) { @@ -144,17 +147,8 @@ save(char *filename, lispobj init_function) dynamic_space_free_pointer); #else #ifdef LISP_FEATURE_GENCGC - /* I don't know too much about the circumstances in which we could - * end up here. It may be that current_region_free_pointer is - * guaranteed to be relevant and we could skip these slightly - * paranoid checks. TRT would be to rid the code of - * current_region_foo completely - dan 2002.09.17 */ - if((boxed_region.free_pointer < current_region_free_pointer) && - (boxed_region.end_addr == current_region_end_addr)) - boxed_region.free_pointer = current_region_free_pointer; /* Flush the current_region, updating the tables. */ - gc_alloc_update_page_tables(0,&boxed_region); - gc_alloc_update_page_tables(1,&unboxed_region); + gc_alloc_update_all_page_tables(); update_x86_dynamic_space_free_pointer(); #endif output_space(file,