From 0456d1e772fa07a2bb004ed72ebe063a3921d0cd Mon Sep 17 00:00:00 2001 From: Pekka Pirinen Date: Wed, 4 Oct 2000 15:08:11 +0100 Subject: [PATCH] Fix the header case as well Copied from Perforce Change: 21561 ServerID: perforce.ravenbrook.com --- mps/src/poolamc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mps/src/poolamc.c b/mps/src/poolamc.c index 47f72e5014b..b5e976f784a 100644 --- a/mps/src/poolamc.c +++ b/mps/src/poolamc.c @@ -1,6 +1,6 @@ /* impl.c.poolamc: AUTOMATIC MOSTLY-COPYING MEMORY POOL CLASS * - * $HopeName: MMsrc!poolamc.c(trunk.48) $ + * $HopeName: MMsrc!poolamc.c(trunk.49) $ * Copyright (C) 2000 Harlequin Limited. All rights reserved. * * .sources: design.mps.poolamc. @@ -9,7 +9,7 @@ #include "mpscamc.h" #include "mpm.h" -SRCID(poolamc, "$HopeName: MMsrc!poolamc.c(trunk.48) $"); +SRCID(poolamc, "$HopeName: MMsrc!poolamc.c(trunk.49) $"); /* PType enumeration -- distinguishes AMCGen and AMCNailBoard */ @@ -1860,9 +1860,8 @@ static Res AMCHeaderFix(Pool pool, ScanState ss, Seg seg, Ref *refIO) } while (!BUFFER_COMMIT(buffer, newBase, length)); ss->copiedSize += length; - /* We know seg is readable, because we made sure in .access.read.header. */ - /* Now make sure there's no write barrier. */ - if (!shieldUp && (SegPM(seg) & AccessWRITE)) { + /* Make sure there's no read or write barrier. */ + if (!shieldUp && (SegPM(seg) & (AccessWRITE | AccessREAD))) { ShieldExpose(arena, seg); shieldUp = TRUE; }