0.7.13.5
[sbcl.git] / src / runtime / save.c
index da73349..716001f 100644 (file)
@@ -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,