Use __PIC__ and ming32_TARGET_OS to turn on windows DLL support, not ENABLE_WIN32_DLL...
[ghc-hetmet.git] / rts / RetainerProfile.c
index fa12637..fdddd8d 100644 (file)
@@ -30,6 +30,7 @@
 #include "Stats.h"
 #include "ProfHeap.h"
 #include "Apply.h"
+#include "sm/Storage.h" // for END_OF_STATIC_LIST
 
 /*
   Note: what to change in order to plug-in a new retainer profiling scheme?
@@ -620,11 +621,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child )
     case RET_BIG:
        // invalid objects
     case IND:
-    case BLOCKED_FETCH:
-    case FETCH_ME:
-    case FETCH_ME_BQ:
-    case RBH:
-    case REMOTE_REF:
     case INVALID_OBJECT:
     default:
        barf("Invalid object *c in push()");
@@ -983,11 +979,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r )
        case RET_BIG:
            // invalid objects
        case IND:
-       case BLOCKED_FETCH:
-       case FETCH_ME:
-       case FETCH_ME_BQ:
-       case RBH:
-       case REMOTE_REF:
        case INVALID_OBJECT:
        default:
            barf("Invalid object *c in pop()");
@@ -1145,11 +1136,6 @@ isRetainer( StgClosure *c )
     case RET_BIG:
        // other cases
     case IND:
-    case BLOCKED_FETCH:
-    case FETCH_ME:
-    case FETCH_ME_BQ:
-    case RBH:
-    case REMOTE_REF:
     case INVALID_OBJECT:
     default:
        barf("Invalid object in isRetainer(): %d", get_itbl(c)->type);
@@ -1292,9 +1278,9 @@ retainSRT (StgClosure **srt, nat srt_bitmap, StgClosure *c, retainer c_child_r)
 
   while (bitmap != 0) {
       if ((bitmap & 1) != 0) {
-#ifdef ENABLE_WIN32_DLL_SUPPORT
+#if defined(__PIC__) && defined(mingw32_TARGET_OS)
          if ( (unsigned long)(*srt) & 0x1 ) {
-             retainClosure(*stgCast(StgClosure**,(stgCast(unsigned long, *srt) & ~0x1)), 
+             retainClosure(* (StgClosure**) ((unsigned long) (*srt) & ~0x1), 
                            c, c_child_r);
          } else {
              retainClosure(*srt,c,c_child_r);