diff options
Diffstat (limited to 'mps/code/mpm.h')
| -rw-r--r-- | mps/code/mpm.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/mps/code/mpm.h b/mps/code/mpm.h index 371319aeee6..979ccaec360 100644 --- a/mps/code/mpm.h +++ b/mps/code/mpm.h | |||
| @@ -405,11 +405,14 @@ extern double TraceWorkFactor; | |||
| 405 | 405 | ||
| 406 | #define TRACE_SCAN_BEGIN(ss) \ | 406 | #define TRACE_SCAN_BEGIN(ss) \ |
| 407 | BEGIN \ | 407 | BEGIN \ |
| 408 | Shift SCANzoneShift = (ss)->zoneShift; \ | 408 | /* Check range on zoneShift before casting to Shift. */ \ |
| 409 | ZoneSet SCANwhite = (ss)->white; \ | 409 | AVER((ss)->zoneShift < MPS_WORD_WIDTH); \ |
| 410 | RefSet SCANsummary = (ss)->unfixedSummary; \ | 410 | { \ |
| 411 | Word SCANt; \ | 411 | Shift SCANzoneShift = (Shift)(ss)->zoneShift; \ |
| 412 | { | 412 | ZoneSet SCANwhite = (ss)->white; \ |
| 413 | RefSet SCANsummary = (ss)->unfixedSummary; \ | ||
| 414 | Word SCANt; \ | ||
| 415 | { | ||
| 413 | 416 | ||
| 414 | /* Equivalent to <code/mps.h> MPS_FIX1 */ | 417 | /* Equivalent to <code/mps.h> MPS_FIX1 */ |
| 415 | 418 | ||
| @@ -431,8 +434,9 @@ extern double TraceWorkFactor; | |||
| 431 | /* Equivalent to <code/mps.h> MPS_SCAN_END */ | 434 | /* Equivalent to <code/mps.h> MPS_SCAN_END */ |
| 432 | 435 | ||
| 433 | #define TRACE_SCAN_END(ss) \ | 436 | #define TRACE_SCAN_END(ss) \ |
| 437 | } \ | ||
| 438 | (ss)->unfixedSummary = SCANsummary; \ | ||
| 434 | } \ | 439 | } \ |
| 435 | (ss)->unfixedSummary = SCANsummary; \ | ||
| 436 | END | 440 | END |
| 437 | 441 | ||
| 438 | extern Res TraceScanArea(ScanState ss, Addr *base, Addr *limit); | 442 | extern Res TraceScanArea(ScanState ss, Addr *base, Addr *limit); |