fix haddock submodule pointer
[ghc-hetmet.git] / rts / LdvProfile.c
index 021ecf0..7bc032e 100644 (file)
 #include "Schedule.h"
 
 /* --------------------------------------------------------------------------
- * Fills in the slop when a *dynamic* closure changes its type.
- * First calls LDV_recordDead() to declare the closure is dead, and then
- * fills in the slop.
- * 
- *  Invoked when:
- *    1) blackholing, UPD_BH_UPDATABLE() and UPD_BH_SINGLE_ENTRY (in
- *      includes/StgMacros.h), threadLazyBlackHole() and 
- *      threadSqueezeStack() (in GC.c).
- *    2) updating with indirection closures, updateWithIndirection() 
- *      and updateWithPermIndirection() (in Storage.h).
- * 
- *  LDV_recordDead_FILL_SLOP_DYNAMIC() is not called on 'inherently used' 
- *  closures such as TSO. It is not called on PAP because PAP is not updatable.
- *  ----------------------------------------------------------------------- */
-void 
-LDV_recordDead_FILL_SLOP_DYNAMIC( StgClosure *p )
-{
-    nat size, i;
-
-#if defined(__GNUC__) && __GNUC__ < 3 && defined(DEBUG)
-#error Please use gcc 3.0+ to compile this file with DEBUG; gcc < 3.0 miscompiles it
-#endif
-
-    if (era > 0) {
-       // very like FILL_SLOP(), except that we call LDV_recordDead().
-       size = closure_sizeW(p);
-
-       LDV_recordDead((StgClosure *)(p), size);
-
-       if (size > sizeofW(StgThunkHeader)) {
-           for (i = 0; i < size - sizeofW(StgThunkHeader); i++) {
-               ((StgThunk *)(p))->payload[i] = 0;
-           }
-       }
-    }
-}
-
-/* --------------------------------------------------------------------------
  * This function is called eventually on every object destroyed during
  * a garbage collection, whether it is a major garbage collection or
  * not.  If c is an 'inherently used' closure, nothing happens.  If c
@@ -98,6 +60,7 @@ processHeapClosureForDead( StgClosure *c )
          'inherently used' cases: do nothing.
        */
     case TSO:
+    case STACK:
     case MVAR_CLEAN:
     case MVAR_DIRTY:
     case MUT_ARR_PTRS_CLEAN:
@@ -168,6 +131,7 @@ processHeapClosureForDead( StgClosure *c )
        // stack objects
     case UPDATE_FRAME:
     case CATCH_FRAME:
+    case UNDERFLOW_FRAME:
     case STOP_FRAME:
     case RET_DYN:
     case RET_BCO: