--- a/src/hotspot/share/gc/z/zCollectedHeap.cpp Wed Aug 28 09:50:23 2019 +0200
+++ b/src/hotspot/share/gc/z/zCollectedHeap.cpp Wed Aug 28 11:19:09 2019 +0200
@@ -23,6 +23,7 @@
#include "precompiled.hpp"
#include "gc/shared/gcHeapSummary.hpp"
+#include "gc/shared/locationPrinter.hpp"
#include "gc/shared/suspendibleThreadSet.hpp"
#include "gc/z/zCollectedHeap.hpp"
#include "gc/z/zGlobals.hpp"
@@ -249,14 +250,6 @@
_heap.object_iterate(cl, true /* visit_weaks */);
}
-HeapWord* ZCollectedHeap::block_start(const void* addr) const {
- return (HeapWord*)_heap.block_start((uintptr_t)addr);
-}
-
-bool ZCollectedHeap::block_is_obj(const HeapWord* addr) const {
- return _heap.block_is_obj((uintptr_t)addr);
-}
-
void ZCollectedHeap::register_nmethod(nmethod* nm) {
ZNMethod::register_nmethod(nm);
}
@@ -356,6 +349,16 @@
// Does nothing
}
+bool ZCollectedHeap::print_location(outputStream* st, void* addr) const {
+ if (LocationPrinter::is_valid_obj(addr)) {
+ st->print(INTPTR_FORMAT " is a %s oop: ", p2i(addr),
+ ZAddress::is_good(reinterpret_cast<uintptr_t>(addr)) ? "good" : "bad");
+ cast_to_oop(addr)->print_on(st);
+ return true;
+ }
+ return false;
+}
+
void ZCollectedHeap::verify(VerifyOption option /* ignored */) {
_heap.verify();
}