1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Wed Jan 14 14:12:55 2009 -0800 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Fri Jan 16 13:02:20 2009 -0500 1.3 @@ -36,8 +36,11 @@ 1.4 1.5 inline HeapRegion* 1.6 G1CollectedHeap::heap_region_containing_raw(const void* addr) const { 1.7 - HeapRegion* res = _hrs->addr_to_region(addr); 1.8 - assert(res != NULL, "addr outside of heap?"); 1.9 + assert(_g1_reserved.contains(addr), "invariant"); 1.10 + size_t index = ((intptr_t) addr - (intptr_t) _g1_reserved.start()) 1.11 + >> HeapRegion::LogOfHRGrainBytes; 1.12 + HeapRegion* res = _hrs->at(index); 1.13 + assert(res == _hrs->addr_to_region(addr), "sanity"); 1.14 return res; 1.15 } 1.16