diff options
| author | Richard Brooksby | 2012-09-10 19:04:53 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2012-09-10 19:04:53 +0100 |
| commit | dc00e06914a46d5e3abfdecff7a55793402b9880 (patch) | |
| tree | 4287d44090444d27ab31cafec406f00598b4c6a0 /mps/code | |
| parent | 2c4c8902240d4f367125bbde044bbfcbb41c6434 (diff) | |
| download | emacs-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.c | 10 |
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 | ||