From 0eabbb5155cd3ad26db79e190607948202f85121 Mon Sep 17 00:00:00 2001 From: Pekka Pirinen Date: Wed, 7 Mar 2001 16:24:07 +0000 Subject: [PATCH] Really account for new allocation Copied from Perforce Change: 21670 ServerID: perforce.ravenbrook.com --- mps/src/poolams.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mps/src/poolams.h b/mps/src/poolams.h index 2e2308ec33f..267deb030ce 100644 --- a/mps/src/poolams.h +++ b/mps/src/poolams.h @@ -1,6 +1,6 @@ /* impl.h.poolams: AUTOMATIC MARK & SWEEP POOL CLASS INTERFACE * - * $HopeName: MMsrc!poolams.h(trunk.13) $ + * $HopeName: MMsrc!poolams.h(trunk.14) $ * Copyright (C) 2001 Harlequin Limited. All rights reserved. * * .purpose: Internal interface to AMS functionality. @@ -69,6 +69,7 @@ typedef struct AMSSegStruct { RingStruct segRing; /* ring that this seg belongs to */ Count grains; /* number of grains */ Count free; /* number of free grains */ + Count newAlloc; /* number of grains allocated since last GC */ Bool allocTableInUse; /* whether we use allocTable */ Index firstFree; /* 1st free grain, if allocTable is not used */ BT allocTable; /* set if grain is allocated */ @@ -97,6 +98,8 @@ typedef struct AMSSegStruct { /* only use when size is a multiple of the grain size */ #define AMSGrains(ams, size) ((size) >> (ams)->grainShift) +#define AMSGrains2Size(ams, grains) ((grains) << (ams)->grainShift) + #define AMSSegShift(seg) (SegAMSSeg(seg)->ams->grainShift) #define AMS_ADDR_INDEX(seg, addr) \