X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FStable.c;fp=rts%2FStable.c;h=046fb3be4277b40a867e9da8969bc79e83c28dd9;hb=f86e7206ea94b48b94fb61007a1c5d55b8c60f45;hp=a6b8ddf7381a0291219d6a583674d5e1d762079c;hpb=ae267d04df855051b99218e3712b3f56b8016d56;p=ghc-hetmet.git diff --git a/rts/Stable.c b/rts/Stable.c index a6b8ddf..046fb3b 100644 --- a/rts/Stable.c +++ b/rts/Stable.c @@ -323,7 +323,7 @@ enlargeStablePtrTable(void) * -------------------------------------------------------------------------- */ void -markStablePtrTable(evac_fn evac) +markStablePtrTable(evac_fn evac, void *user) { snEntry *p, *end_stable_ptr_table; StgPtr q; @@ -347,7 +347,7 @@ markStablePtrTable(evac_fn evac) // if the ref is non-zero, treat addr as a root if (p->ref != 0) { - evac((StgClosure **)&p->addr); + evac(user, (StgClosure **)&p->addr); } } } @@ -362,7 +362,7 @@ markStablePtrTable(evac_fn evac) * -------------------------------------------------------------------------- */ void -threadStablePtrTable( evac_fn evac ) +threadStablePtrTable( evac_fn evac, void *user ) { snEntry *p, *end_stable_ptr_table; StgPtr q; @@ -372,12 +372,12 @@ threadStablePtrTable( evac_fn evac ) for (p = stable_ptr_table+1; p < end_stable_ptr_table; p++) { if (p->sn_obj != NULL) { - evac((StgClosure **)&p->sn_obj); + evac(user, (StgClosure **)&p->sn_obj); } q = p->addr; if (q && (q < (P_)stable_ptr_table || q >= (P_)end_stable_ptr_table)) { - evac((StgClosure **)&p->addr); + evac(user, (StgClosure **)&p->addr); } } }