< prev index next >

src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp

Print this page
rev 8237 : 8079330: Circular dependency between G1CollectedHeap and G1BlockOffsetSharedArray
Reviewed-by:

*** 21,32 **** * questions. * */ #include "precompiled.hpp" - #include "gc_implementation/g1/g1CollectedHeap.hpp" #include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" #include "gc_implementation/g1/heapRegion.hpp" #include "memory/space.hpp" #include "oops/oop.inline.hpp" #include "runtime/java.hpp" #include "services/memTracker.hpp" --- 21,32 ---- * questions. * */ #include "precompiled.hpp" #include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" + #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/heapRegion.hpp" #include "memory/space.hpp" #include "oops/oop.inline.hpp" #include "runtime/java.hpp" #include "services/memTracker.hpp"
*** 64,73 **** --- 64,87 ---- assert(p >= _reserved.start(), "just checking"); size_t delta = pointer_delta(p, _reserved.start()); return (delta & right_n_bits(LogN_words)) == (size_t)NoBits; } + #ifdef ASSERT + void G1BlockOffsetSharedArray::check_index(size_t index, const char* msg) const { + assert((index) < (_reserved.word_size() >> LogN_words), + err_msg("%s - index: "SIZE_FORMAT", _vs.committed_size: "SIZE_FORMAT, + msg, (index), (_reserved.word_size() >> LogN_words))); + assert(G1CollectedHeap::heap()->is_in_exact(address_for_index_raw(index)), + err_msg("Index "SIZE_FORMAT" corresponding to "PTR_FORMAT + " (%u) is not in committed area.", + (index), + p2i(address_for_index_raw(index)), + G1CollectedHeap::heap()->addr_to_region(address_for_index_raw(index)))); + } + #endif // ASSERT + ////////////////////////////////////////////////////////////////////// // G1BlockOffsetArray ////////////////////////////////////////////////////////////////////// G1BlockOffsetArray::G1BlockOffsetArray(G1BlockOffsetSharedArray* array,
< prev index next >