src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp

changeset 1187
a2957df801a1
parent 1014
0fbdb4381b99
child 1907
c18cbe5936b8
equal deleted inserted replaced
1186:20c6f43950b5 1187:a2957df801a1
35 } 35 }
36 36
37 inline HeapRegion* 37 inline HeapRegion*
38 G1CollectedHeap::heap_region_containing_raw(const void* addr) const { 38 G1CollectedHeap::heap_region_containing_raw(const void* addr) const {
39 assert(_g1_reserved.contains(addr), "invariant"); 39 assert(_g1_reserved.contains(addr), "invariant");
40 size_t index = ((intptr_t) addr - (intptr_t) _g1_reserved.start()) 40 size_t index = pointer_delta(addr, _g1_reserved.start(), 1)
41 >> HeapRegion::LogOfHRGrainBytes; 41 >> HeapRegion::LogOfHRGrainBytes;
42
42 HeapRegion* res = _hrs->at(index); 43 HeapRegion* res = _hrs->at(index);
43 assert(res == _hrs->addr_to_region(addr), "sanity"); 44 assert(res == _hrs->addr_to_region(addr), "sanity");
44 return res; 45 return res;
45 } 46 }
46 47

mercurial