Add a 'setKeepCAFs' external function (#3900)
[ghc-hetmet.git] / rts / sm / Storage.c
index d7e5b67..6aedb96 100644 (file)
@@ -268,7 +268,6 @@ freeStorage (void)
 void
 newCAF(StgRegTable *reg, StgClosure* caf)
 {
-#ifdef DYNAMIC
   if(keepCAFs)
   {
     // HACK:
@@ -289,7 +288,6 @@ newCAF(StgRegTable *reg, StgClosure* caf)
     RELEASE_SM_LOCK;
   }
   else
-#endif
   {
     // Put this CAF on the mutable list for the old generation.
     ((StgIndStatic *)caf)->saved_info = NULL;
@@ -297,6 +295,13 @@ newCAF(StgRegTable *reg, StgClosure* caf)
   }
 }
 
+// External API for setting the keepCAFs flag. see #3900.
+void
+setKeepCAFs (void)
+{
+    keepCAFs = 1;
+}
+
 // An alternate version of newCaf which is used for dynamically loaded
 // object code in GHCi.  In this case we want to retain *all* CAFs in
 // the object code, because they might be demanded at any time from an