rts/posix/Itimer.c: Handle EINTR when reading timerfd
[ghc.git] / rts / RetainerProfile.c
index f3e8c72..387c6d7 100644 (file)
@@ -1881,7 +1881,8 @@ resetStaticObjectForRetainerProfiling( StgClosure *static_objects )
     count = 0;
 #endif
     p = static_objects;
-    while (p != END_OF_STATIC_LIST) {
+    while (p != END_OF_STATIC_OBJECT_LIST) {
+        p = UNTAG_STATIC_LIST_PTR(p);
 #ifdef DEBUG_RETAINER
         count++;
 #endif
@@ -2065,7 +2066,7 @@ retainerProfile(void)
 
 #define LOOKS_LIKE_PTR(r) ((LOOKS_LIKE_STATIC_CLOSURE(r) || \
         ((HEAP_ALLOCED(r) && ((Bdescr((P_)r)->flags & BF_FREE) == 0)))) && \
-        ((StgWord)(*(StgPtr)r)!=0xaaaaaaaa))
+        ((StgWord)(*(StgPtr)r)!=(StgWord)0xaaaaaaaaaaaaaaaaULL))
 
 static nat
 sanityCheckHeapClosure( StgClosure *c )
@@ -2199,7 +2200,7 @@ checkHeapSanityForRetainerProfiling( void )
             /*
               After all live objects have been scavenged, the garbage
               collector may create some objects in
-              scheduleFinalizers(). These objects are created throught
+              scheduleFinalizers(). These objects are created through
               allocate(), so the small object pool or the large object
               pool of the g0s0 may not be empty.
             */