1.0.10.25: Build fix, add a missing bit of hashtable rewrite.
[sbcl.git] / src / runtime / purify.c
index a1f21b6..ec43c3a 100644 (file)
@@ -34,6 +34,8 @@
 #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
  * a lot of hairy and fragile ifdeffage in here to support purify on
@@ -497,7 +499,7 @@ ptrans_otherptr(lispobj thing, lispobj header, boolean constant)
           return ptrans_unboxed(thing, header);
 #ifdef LUTEX_WIDETAG
       case LUTEX_WIDETAG:
-          gencgc_unregister_lutex(native_pointer(thing));
+          gencgc_unregister_lutex((struct lutex *) native_pointer(thing));
           return ptrans_unboxed(thing, header);
 #endif
 
@@ -716,8 +718,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(((lispobj *)thing)[2]);
+                    hash_table->needs_rehash_p = T;
                   }
                 count = 2;
                 break;