--- old/src/share/vm/oops/oop.inline.hpp 2017-08-17 11:33:46.483863226 -0400 +++ new/src/share/vm/oops/oop.inline.hpp 2017-08-17 11:33:46.251466314 -0400 @@ -533,9 +533,8 @@ return mark()->has_bias_pattern(); } -// used only for asserts -bool oopDesc::is_oop(bool ignore_mark_word) const { - oop obj = (oop) this; +// used only for asserts and guarantees +inline bool oopDesc::is_oop(oop obj, bool ignore_mark_word) { if (!check_obj_alignment(obj)) return false; if (!Universe::heap()->is_in_reserved(obj)) return false; // obj is aligned and accessible in heap @@ -548,16 +547,15 @@ if (ignore_mark_word) { return true; } - if (mark() != NULL) { + if (obj->mark() != NULL) { return true; } return !SafepointSynchronize::is_at_safepoint(); } - -// used only for asserts -bool oopDesc::is_oop_or_null(bool ignore_mark_word) const { - return this == NULL ? true : is_oop(ignore_mark_word); +// used only for asserts and guarantees +inline bool oopDesc::is_oop_or_null(oop obj, bool ignore_mark_word) { + return obj == NULL ? true : is_oop(obj, ignore_mark_word); } #ifndef PRODUCT