< prev index next >
src/share/vm/oops/oop.inline.hpp
Print this page
@@ -531,13 +531,12 @@
bool oopDesc::has_bias_pattern() const {
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
if (Universe::heap()->is_in_reserved(obj->klass_or_null())) return false;
@@ -546,20 +545,19 @@
// Outside of a safepoint, the header could be changing (for example,
// another thread could be inflating a lock on this object).
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
// used only for asserts
bool oopDesc::is_unlocked_oop() const {
< prev index next >