| Index: src/spaces-inl.h
|
| diff --git a/src/spaces-inl.h b/src/spaces-inl.h
|
| index c64772775aef61e3229d9faa42319d628fa6d411..8a576a83f606cf2adb314237fbbdca969742436b 100644
|
| --- a/src/spaces-inl.h
|
| +++ b/src/spaces-inl.h
|
| @@ -214,6 +214,19 @@ MemoryChunk* MemoryChunk::FromAnyPointerAddress(Address addr) {
|
| }
|
|
|
|
|
| +void MemoryChunk::UpdateHighWaterMark(Address mark) {
|
| + if (mark == NULL) return;
|
| + // Need to subtract one from the mark because when a chunk is full the
|
| + // top points to the next address after the chunk, which effectively belongs
|
| + // to another chunk. See the comment to Page::FromAllocationTop.
|
| + MemoryChunk* chunk = MemoryChunk::FromAddress(mark - 1);
|
| + int new_mark = static_cast<int>(mark - chunk->address());
|
| + if (new_mark > chunk->high_water_mark_) {
|
| + chunk->high_water_mark_ = new_mark;
|
| + }
|
| +}
|
| +
|
| +
|
| PointerChunkIterator::PointerChunkIterator(Heap* heap)
|
| : state_(kOldPointerState),
|
| old_pointer_iterator_(heap->old_pointer_space()),
|
|
|