X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRetainerProfile.c;h=4850b94d21794c1f0db7aac07ebf4352efa9d481;hb=dbc1ed7e054a1c67cd34ff4776feea0d176e3bbb;hp=dec886aba6ef097a46513e287424a87567eb40e8;hpb=4c394999264d602f10e7623cefa7588423c4f68b;p=ghc-hetmet.git diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index dec886a..4850b94 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -626,7 +626,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child ) case FETCH_ME_BQ: case RBH: case REMOTE_REF: - case EVACUATED: case INVALID_OBJECT: default: barf("Invalid object *c in push()"); @@ -992,7 +991,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) case FETCH_ME_BQ: case RBH: case REMOTE_REF: - case EVACUATED: case INVALID_OBJECT: default: barf("Invalid object *c in pop()"); @@ -1157,7 +1155,6 @@ isRetainer( StgClosure *c ) case FETCH_ME_BQ: case RBH: case REMOTE_REF: - case EVACUATED: case INVALID_OBJECT: default: barf("Invalid object in isRetainer(): %d", get_itbl(c)->type); @@ -1635,7 +1632,7 @@ inner_loop: #ifdef DEBUG_RETAINER debugBelch("ThreadRelocated encountered in retainClosure()\n"); #endif - c = (StgClosure *)((StgTSO *)c)->link; + c = (StgClosure *)((StgTSO *)c)->_link; goto inner_loop; } break; @@ -1800,7 +1797,7 @@ inner_loop: * Compute the retainer set for every object reachable from *tl. * -------------------------------------------------------------------------- */ static void -retainRoot( StgClosure **tl ) +retainRoot(void *user STG_UNUSED, StgClosure **tl) { StgClosure *c; @@ -1837,7 +1834,7 @@ computeRetainerSet( void ) RetainerSet tmpRetainerSet; #endif - GetRoots(retainRoot); // for scheduler roots + markCapabilities(retainRoot, NULL); // for scheduler roots // This function is called after a major GC, when key, value, and finalizer // all are guaranteed to be valid, or reachable. @@ -1846,10 +1843,10 @@ computeRetainerSet( void ) // for retainer profilng. for (weak = weak_ptr_list; weak != NULL; weak = weak->link) // retainRoot((StgClosure *)weak); - retainRoot((StgClosure **)&weak); + retainRoot((StgClosure **)&weak, NULL); // Consider roots from the stable ptr table. - markStablePtrTable(retainRoot); + markStablePtrTable(retainRoot, NULL); // The following code resets the rs field of each unvisited mutable // object (computing sumOfNewCostExtra and updating costArray[] when