< prev index next >

src/hotspot/share/gc/shared/locationPrinter.cpp

Print this page

        

*** 22,46 **** * */ #include "precompiled.hpp" #include "gc/shared/collectedHeap.hpp" ! #include "gc/shared/locationPrinter.inline.hpp" #include "memory/universe.hpp" #include "oops/klass.hpp" ! bool LocationPrinter::is_valid_obj(address addr) { ! void* obj = reinterpret_cast<void*>(addr); if (!is_object_aligned(obj)) { return false; } ! if ((size_t)obj < os::min_page_size()) { return false; } // We need at least the mark and the klass word in the committed region. ! if (!os::is_readable_range(obj, (oopDesc*)obj + 1)) { return false; } if (!Universe::heap()->is_in(obj)) { return false; } --- 22,46 ---- * */ #include "precompiled.hpp" #include "gc/shared/collectedHeap.hpp" ! #include "gc/shared/locationPrinter.hpp" #include "memory/universe.hpp" + #include "runtime/os.hpp" #include "oops/klass.hpp" ! bool LocationPrinter::is_valid_obj(void* obj) { if (!is_object_aligned(obj)) { return false; } ! if (obj < (void*)os::min_page_size()) { return false; } // We need at least the mark and the klass word in the committed region. ! if (!os::is_readable_range(obj, (HeapWord*)obj + oopDesc::header_size())) { return false; } if (!Universe::heap()->is_in(obj)) { return false; }
< prev index next >