diff --git a/mps/src/poolams.c b/mps/src/poolams.c index 6f54b477908..3bcb75d6dfc 100644 --- a/mps/src/poolams.c +++ b/mps/src/poolams.c @@ -1,6 +1,6 @@ /* impl.c.poolams: AUTOMATIC MARK & SWEEP POOL CLASS * - * $HopeName: MMsrc!poolams.c(trunk.47) $ + * $HopeName: MMsrc!poolams.c(trunk.48) $ * Copyright (C) 2001 Harlequin Limited. All rights reserved. * * .design: See design.mps.poolams. @@ -18,7 +18,7 @@ #include "mpm.h" #include -SRCID(poolams, "$HopeName: MMsrc!poolams.c(trunk.47) $"); +SRCID(poolams, "$HopeName: MMsrc!poolams.c(trunk.48) $"); #define AMSSig ((Sig)0x519A3599) /* SIGnature AMS */ @@ -993,6 +993,7 @@ Res AMSWhiten(Pool pool, Trace trace, Seg seg) } trace->condemned += SegSize(seg); + ams->pgen.newSize -= SegSize(seg); amsseg->marksChanged = FALSE; /* design.mps.poolams.marked.condemn */ amsseg->ambiguousFixes = FALSE; diff --git a/mps/src/poollo.c b/mps/src/poollo.c index 4dc4df2410e..f401b5a813d 100644 --- a/mps/src/poollo.c +++ b/mps/src/poollo.c @@ -1,7 +1,7 @@ /* impl.c.poollo: LEAF POOL CLASS * - * $HopeName: MMsrc!poollo.c(trunk.16) $ - * Copyright (C) 1999 Harlequin Limited. All rights reserved. + * $HopeName: MMsrc!poollo.c(trunk.17) $ + * Copyright (C) 2001 Harlequin Limited. All rights reserved. * * DESIGN * @@ -12,7 +12,7 @@ #include "mpm.h" #include "mps.h" -SRCID(poollo, "$HopeName: MMsrc!poollo.c(trunk.16) $"); +SRCID(poollo, "$HopeName: MMsrc!poollo.c(trunk.17) $"); #define LOGen ((Serial)1) @@ -663,11 +663,12 @@ static Res LOWhiten(Pool pool, Trace trace, Seg seg) AVERT(LOSeg, loseg); bits = SegSize(seg) >> lo->alignShift; - /* allocated objects should be whitened, free areas should */ - /* be left "black" */ + /* Allocated objects should be whitened, free areas should */ + /* be left "black". */ BTCopyInvertRange(loseg->alloc, loseg->mark, 0, bits); /* @@@@ We could subtract all the free grains. */ trace->condemned += SegSize(seg); + lo->pgen.newSize -= SegSize(seg); SegSetWhite(seg, TraceSetAdd(SegWhite(seg), trace)); }