diff --git a/mps/code/mpm.h b/mps/code/mpm.h index de9a955a2d2..4746835a75a 100644 --- a/mps/code/mpm.h +++ b/mps/code/mpm.h @@ -226,9 +226,7 @@ extern Res PoolWhiten(Pool pool, Trace trace, Seg seg); extern void PoolGrey(Pool pool, Trace trace, Seg seg); extern void PoolBlacken(Pool pool, TraceSet traceSet, Seg seg); extern Res PoolScan(Bool *totalReturn, ScanState ss, Pool pool, Seg seg); -extern Res (PoolFix)(Pool pool, ScanState ss, Seg seg, Addr *refIO); -#define PoolFix(pool, ss, seg, refIO) \ - ((*(pool)->fix)(pool, ss, seg, refIO)) +extern Res PoolFix(Pool pool, ScanState ss, Seg seg, Addr *refIO); extern Res PoolFixEmergency(Pool pool, ScanState ss, Seg seg, Addr *refIO); extern void PoolReclaim(Pool pool, Trace trace, Seg seg); extern void PoolTraceEnd(Pool pool, Trace trace); diff --git a/mps/code/pool.c b/mps/code/pool.c index 60fd38dda91..40b6abc7b58 100644 --- a/mps/code/pool.c +++ b/mps/code/pool.c @@ -400,10 +400,10 @@ Res PoolScan(Bool *totalReturn, ScanState ss, Pool pool, Seg seg) /* PoolFix* -- fix a reference to an object in this pool * - * See for macro version; see . + * See . */ -Res (PoolFix)(Pool pool, ScanState ss, Seg seg, Addr *refIO) +Res PoolFix(Pool pool, ScanState ss, Seg seg, Addr *refIO) { AVERT_CRITICAL(Pool, pool); AVERT_CRITICAL(ScanState, ss); @@ -414,7 +414,7 @@ Res (PoolFix)(Pool pool, ScanState ss, Seg seg, Addr *refIO) /* Should only be fixing references to white segments. */ AVER_CRITICAL(TraceSetInter(SegWhite(seg), ss->traces) != TraceSetEMPTY); - return PoolFix(pool, ss, seg, refIO); + return pool->fix(pool, ss, seg, refIO); } Res PoolFixEmergency(Pool pool, ScanState ss, Seg seg, Addr *refIO)