293 |
/* write out the arenas */ |
/* write out the arenas */ |
294 |
for (p = arenaHdrs, i = 0; i < heap->numGens; i++) { |
for (p = arenaHdrs, i = 0; i < heap->numGens; i++) { |
295 |
for (j = 0; j < NUM_ARENAS; j++) { |
for (j = 0; j < NUM_ARENAS; j++) { |
296 |
|
if (GCMessages) { |
297 |
SayDebug("write %d,%d: %d bytes [%#x..%#x) @ %#x\n", |
SayDebug("write %d,%d: %d bytes [%#x..%#x) @ %#x\n", |
298 |
i+1, j, p->info.o.sizeB, p->info.o.baseAddr, p->info.o.baseAddr+p->info.o.sizeB, |
i+1, j, p->info.o.sizeB, |
299 |
|
p->info.o.baseAddr, p->info.o.baseAddr+p->info.o.sizeB, |
300 |
p->offset); |
p->offset); |
301 |
|
} |
302 |
if (p->info.o.sizeB > 0) { |
if (p->info.o.sizeB > 0) { |
303 |
WR_Seek(wr, p->offset); |
WR_Seek(wr, p->offset); |
304 |
WR_Write(wr, (void *)(p->info.o.baseAddr), p->info.o.sizeB); |
WR_Write(wr, (void *)(p->info.o.baseAddr), p->info.o.sizeB); |
316 |
if (p->info.bo.numBigObjs > 0) { |
if (p->info.bo.numBigObjs > 0) { |
317 |
hdrSizeB = p->info.bo.numBigObjs * sizeof(bigobj_hdr_t); |
hdrSizeB = p->info.bo.numBigObjs * sizeof(bigobj_hdr_t); |
318 |
hdr = (bigobj_hdr_t *) MALLOC (hdrSizeB); |
hdr = (bigobj_hdr_t *) MALLOC (hdrSizeB); |
319 |
|
if (GCMessages) { |
320 |
SayDebug("write %d,%d: %d big objects (%d pages) @ %#x\n", |
SayDebug("write %d,%d: %d big objects (%d pages) @ %#x\n", |
321 |
i+1, j, p->info.bo.numBigObjs, p->info.bo.numBOPages, p->offset); |
i+1, j, p->info.bo.numBigObjs, p->info.bo.numBOPages, |
322 |
|
p->offset); |
323 |
|
} |
324 |
/* initialize the big-object headers */ |
/* initialize the big-object headers */ |
325 |
q = hdr; |
q = hdr; |
326 |
for (bdp = heap->gen[i]->bigObjs[j]; bdp != NIL(bigobj_desc_t *); bdp = bdp->next) { |
for (bdp = heap->gen[i]->bigObjs[j]; bdp != NIL(bigobj_desc_t *); bdp = bdp->next) { |