1.0.26.8: QSHOW changes, bug reporting guidelines
[sbcl.git] / src / runtime / purify.c
index aa809b9..59acf19 100644 (file)
 #include "interrupt.h"
 #include "purify.h"
 #include "interr.h"
-#include "fixnump.h"
 #include "gc.h"
 #include "gc-internal.h"
 #include "thread.h"
 #include "genesis/primitive-objects.h"
 #include "genesis/static-symbols.h"
 #include "genesis/layout.h"
+#include "genesis/hash-table.h"
 #include "gencgc.h"
 
 /* We don't ever do purification with GENCGC as of 1.0.5.*. There was
@@ -717,8 +717,9 @@ pscav(lispobj *addr, long nwords, boolean constant)
 
               case SIMPLE_VECTOR_WIDETAG:
                   if (HeaderValue(thing) == subtype_VectorValidHashing) {
-                    *addr = (subtype_VectorMustRehash << N_WIDETAG_BITS) |
-                        SIMPLE_VECTOR_WIDETAG;
+                    struct hash_table *hash_table =
+                        (struct hash_table *)native_pointer(addr[2]);
+                    hash_table->needs_rehash_p = T;
                   }
                 count = 2;
                 break;
@@ -1021,6 +1022,9 @@ purify(lispobj static_roots, lispobj read_only_roots)
     printf(" cleanup");
     fflush(stdout);
 #endif
+#ifdef LISP_FEATURE_HPUX
+    clear_auto_gc_trigger(); /* restore mmap as it was given by os */
+#endif
 
     os_zero((os_vm_address_t) current_dynamic_space,
             (os_vm_size_t) dynamic_space_size);