< prev index next >

src/share/vm/oops/oop.cpp

Print this page
rev 7854 : 8073387: Move VerifyOopClosures out from genOopClosures.hpp

*** 24,33 **** --- 24,34 ---- #include "precompiled.hpp" #include "classfile/altHashing.hpp" #include "classfile/javaClasses.inline.hpp" #include "oops/oop.inline.hpp" + #include "oops/verifyOop.hpp" #include "runtime/handles.inline.hpp" #include "runtime/thread.inline.hpp" #include "utilities/copy.hpp" PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
*** 118,127 **** --- 119,133 ---- } } VerifyOopClosure VerifyOopClosure::verify_oop; + template <class T> void VerifyOopClosure::do_oop_work(T* p) { + oop obj = oopDesc::load_decode_heap_oop(p); + guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, p2i((oopDesc*) obj))); + } + void VerifyOopClosure::do_oop(oop* p) { VerifyOopClosure::do_oop_work(p); } void VerifyOopClosure::do_oop(narrowOop* p) { VerifyOopClosure::do_oop_work(p); } // type test operations that doesn't require inclusion of oop.inline.hpp. bool oopDesc::is_instance_noinline() const { return is_instance(); }
< prev index next >