Index: src/objects-inl.h |
=================================================================== |
--- src/objects-inl.h (revision 7455) |
+++ src/objects-inl.h (working copy) |
@@ -1158,9 +1158,12 @@ |
Heap* HeapObject::GetHeap() { |
- uintptr_t addr = reinterpret_cast<uintptr_t>(this); |
- addr >>= kHeapDescriptorGranularityBits; |
- return heap_descriptors[addr].heap; |
+ // During GC, the map pointer in HeapObject is used in various ways that |
+ // prevent us from retrieving Heap from the map. |
+ // Assert that we are not in GC, implement GC code in a way that it doesn't |
+ // pull heap from the map. |
+ ASSERT(HEAP->is_safe_to_read_maps()); |
+ return map()->heap(); |
} |