From f63d05eaaf0ef328e745c8a3f802afe2ef9e1cfe Mon Sep 17 00:00:00 2001 From: David Jones Date: Mon, 2 Jul 2007 15:43:34 +0100 Subject: [PATCH] Mps: added band field to tracestruct. unused. Copied from Perforce Change: 162717 ServerID: perforce.ravenbrook.com --- mps/code/mpmst.h | 1 + mps/code/trace.c | 50 +++++++++++++++++++++++++++--------------------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/mps/code/mpmst.h b/mps/code/mpmst.h index 695bb8c82db..c82325da828 100644 --- a/mps/code/mpmst.h +++ b/mps/code/mpmst.h @@ -514,6 +514,7 @@ typedef struct TraceStruct { ZoneSet white; /* zones in the white set */ ZoneSet mayMove; /* zones containing possibly moving objs */ TraceState state; /* current state of trace */ + Rank band; /* current band */ Bool emergency; /* ran out of memory during trace */ Chain chain; /* chain being incrementally collected */ Size condemned; /* condemned bytes */ diff --git a/mps/code/trace.c b/mps/code/trace.c index 36a30274522..961df33fefe 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c @@ -387,36 +387,41 @@ Bool TraceCheck(Trace trace) CHECKL(ZoneSetSub(trace->mayMove, trace->white)); /* Use trace->state to check more invariants. */ switch(trace->state) { - case TraceINIT: - /* @@@@ What can be checked here? */ - break; + case TraceINIT: + /* @@@@ What can be checked here? */ + break; - case TraceUNFLIPPED: - CHECKL(!TraceSetIsMember(trace->arena->flippedTraces, trace)); - /* @@@@ Assert that mutator is grey for trace. */ - break; + case TraceUNFLIPPED: + CHECKL(!TraceSetIsMember(trace->arena->flippedTraces, trace)); + /* @@@@ Assert that mutator is grey for trace. */ + break; - case TraceFLIPPED: - CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); - /* @@@@ Assert that mutator is black for trace. */ - break; + case TraceFLIPPED: + CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); + /* @@@@ Assert that mutator is black for trace. */ + break; - case TraceRECLAIM: - CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); - /* @@@@ Assert that grey set is empty for trace. */ - break; + case TraceRECLAIM: + CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); + /* @@@@ Assert that grey set is empty for trace. */ + break; - case TraceFINISHED: - CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); - /* @@@@ Assert that grey and white sets is empty for trace. */ - break; + case TraceFINISHED: + CHECKL(TraceSetIsMember(trace->arena->flippedTraces, trace)); + /* @@@@ Assert that grey and white sets is empty for trace. */ + break; - default: - NOTREACHED; + default: + NOTREACHED; + } + /* Valid values for band depend on state. */ + if(trace->state == TraceFLIPPED) { + CHECKL(RankCheck(trace->band)); } CHECKL(BoolCheck(trace->emergency)); - if (trace->chain != NULL) + if(trace->chain != NULL) { CHECKU(Chain, trace->chain); + } /* @@@@ checks for counts missing */ CHECKD(TraceStartMessage, &trace->startMessage); return TRUE; @@ -807,6 +812,7 @@ found: trace->mayMove = ZoneSetEMPTY; trace->ti = ti; trace->state = TraceINIT; + trace->band = RankAMBIG; /* Required to be the earliest rank. */ trace->emergency = FALSE; trace->chain = NULL; trace->condemned = (Size)0; /* nothing condemned yet */