aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
authorRichard Brooksby2012-09-10 19:04:53 +0100
committerRichard Brooksby2012-09-10 19:04:53 +0100
commitdc00e06914a46d5e3abfdecff7a55793402b9880 (patch)
tree4287d44090444d27ab31cafec406f00598b4c6a0 /mps/code
parent2c4c8902240d4f367125bbde044bbfcbb41c6434 (diff)
downloademacs-dc00e06914a46d5e3abfdecff7a55793402b9880.tar.gz
emacs-dc00e06914a46d5e3abfdecff7a55793402b9880.zip
Fixing assumption in arenaread that we are in a trace and the segment is grey.
Copied from Perforce Change: 179403 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/global.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/mps/code/global.c b/mps/code/global.c
index d70f9eb8e2b..0f16c5e4475 100644
--- a/mps/code/global.c
+++ b/mps/code/global.c
@@ -940,8 +940,14 @@ Ref ArenaRead(Arena arena, Ref *p)
940 940
941 /* .read.conservative: Scan according to rank phase-of-trace, */ 941 /* .read.conservative: Scan according to rank phase-of-trace, */
942 /* See <code/trace.c#scan.conservative> */ 942 /* See <code/trace.c#scan.conservative> */
943 rank = TraceRankForAccess(arena, seg); 943 /* If the segment isn't grey it doesn't need scanning, and in fact it
944 TraceScanSingleRef(arena->flippedTraces, rank, arena, seg, p); 944 would be wrong to even ask what rank to scan it at, since there might
945 not be any traces running. */
946 if (TraceSetInter(SegGrey(seg), arena->flippedTraces) != TraceSetEMPTY) {
947 rank = TraceRankForAccess(arena, seg);
948 TraceScanSingleRef(arena->flippedTraces, rank, arena, seg, p);
949 }
950
945 /* We don't need to update the Seg Summary as in PoolSingleAccess 951 /* We don't need to update the Seg Summary as in PoolSingleAccess
946 * because we are not changing it after it has been scanned. */ 952 * because we are not changing it after it has been scanned. */
947 953