[project @ 2000-03-25 12:38:40 by panne]
[ghc-hetmet.git] / ghc / rts / Sanity.c
index c0a602a..70eb38a 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Sanity.c,v 1.15 2000/01/13 14:34:04 hwloidl Exp $
+ * $Id: Sanity.c,v 1.18 2000/03/17 14:37:21 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -246,7 +246,7 @@ checkClosure( StgClosure* p )
       {
        nat i;
        for (i = 0; i < info->layout.payload.ptrs; i++) {
-         ASSERT(LOOKS_LIKE_PTR(payloadPtr(p,i)));
+         ASSERT(LOOKS_LIKE_PTR(p->payload[i]));
        }
        return stg_max(sizeW_fromITBL(info), sizeofW(StgHeader) + MIN_UPD_SIZE);
       }
@@ -288,7 +288,7 @@ checkClosure( StgClosure* p )
        {
            nat i;
            for (i = 0; i < info->layout.payload.ptrs; i++) {
-               ASSERT(LOOKS_LIKE_PTR(payloadPtr(p,i)));
+               ASSERT(LOOKS_LIKE_PTR(p->payload[i]));
            }
            return sizeW_fromITBL(info);
        }
@@ -471,7 +471,12 @@ checkTSO(StgTSO *tso)
     StgOffset stack_size = tso->stack_size;
     StgPtr stack_end = stack + stack_size;
 
-    if (tso->whatNext == ThreadComplete ||  tso->whatNext == ThreadKilled) {
+    if (tso->what_next == ThreadRelocated) {
+      checkTSO(tso->link);
+      return;
+    }
+
+    if (tso->what_next == ThreadComplete || tso->what_next == ThreadKilled) {
       /* The garbage collector doesn't bother following any pointers
        * from dead threads, so don't check sanity here.  
        */