replace sparc-specific Int64 code with calls to platform-independent macros
[ghc-hetmet.git] / rts / sm / Compact.c
index 6758cfa..9c13253 100644 (file)
@@ -490,6 +490,10 @@ update_fwd_large( bdescr *bd )
 
   for (; bd != NULL; bd = bd->link) {
 
+    // nothing to do in a pinned block; it might not even have an object
+    // at the beginning.
+    if (bd->flags & BF_PINNED) continue;
+
     p = bd->start;
     info  = get_itbl((StgClosure *)p);
 
@@ -636,6 +640,7 @@ thread_obj (StgInfoTable *info, StgPtr p)
     case WEAK:
     {
        StgWeak *w = (StgWeak *)p;
+       thread(&w->cfinalizer);
        thread(&w->key);
        thread(&w->value);
        thread(&w->finalizer);