aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
authorRichard Kistruck2007-03-21 13:34:44 +0000
committerRichard Kistruck2007-03-21 13:34:44 +0000
commitfa6f33d5e506eff8fbf7b1557d1a93c3ead8be7c (patch)
tree450cc87d383c1dfca1b80f1d3786ff267a019331 /mps/code
parent75bc16ac8ef47dfd29cb18de93ed0958939859ef (diff)
downloademacs-fa6f33d5e506eff8fbf7b1557d1a93c3ead8be7c.tar.gz
emacs-fa6f33d5e506eff8fbf7b1557d1a93c3ead8be7c.zip
Mps branch unfixed-summary: if poolfix fails, aver that *refio is unchanged.
Copied from Perforce Change: 161966 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/trace.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/mps/code/trace.c b/mps/code/trace.c
index b732a5d8075..ff76600689b 100644
--- a/mps/code/trace.c
+++ b/mps/code/trace.c
@@ -1285,8 +1285,17 @@ Res TraceFix(ScanState ss, Ref *refIO)
1285 /* Could move the rank switch here from the class-specific */ 1285 /* Could move the rank switch here from the class-specific */
1286 /* fix methods. */ 1286 /* fix methods. */
1287 res = PoolFix(pool, ss, seg, refIO); 1287 res = PoolFix(pool, ss, seg, refIO);
1288 if (res != ResOK) 1288 if (res != ResOK) {
1289 /* Fix protocol (de facto): if Fix fails, ref must be unchanged */
1290 /* Justification for this restriction:
1291 * A: it simplifies;
1292 * B: it's reasonable (given what may cause Fix to fail);
1293 * C: the code (here) already assumes this: it returns without
1294 * updating ss->fixedSummary. RHSK 2007-03-21.
1295 */
1296 AVER(*refIO == ref);
1289 return res; 1297 return res;
1298 }
1290 } 1299 }
1291 } else { 1300 } else {
1292 /* Tract isn't white. Don't compute seg for non-statistical */ 1301 /* Tract isn't white. Don't compute seg for non-statistical */