equal
deleted
inserted
replaced
103 bool oopDesc::is_oop(oop obj, bool ignore_mark_word) { |
103 bool oopDesc::is_oop(oop obj, bool ignore_mark_word) { |
104 if (!Universe::heap()->is_oop(obj)) { |
104 if (!Universe::heap()->is_oop(obj)) { |
105 return false; |
105 return false; |
106 } |
106 } |
107 |
107 |
108 // Header verification: the mark is typically non-NULL. If we're |
108 // Header verification: the mark is typically non-zero. If we're |
109 // at a safepoint, it must not be null. |
109 // at a safepoint, it must not be zero. |
110 // Outside of a safepoint, the header could be changing (for example, |
110 // Outside of a safepoint, the header could be changing (for example, |
111 // another thread could be inflating a lock on this object). |
111 // another thread could be inflating a lock on this object). |
112 if (ignore_mark_word) { |
112 if (ignore_mark_word) { |
113 return true; |
113 return true; |
114 } |
114 } |
115 if (obj->mark_raw() != NULL) { |
115 if (obj->mark_raw().value() != 0) { |
116 return true; |
116 return true; |
117 } |
117 } |
118 return !SafepointSynchronize::is_at_safepoint(); |
118 return !SafepointSynchronize::is_at_safepoint(); |
119 } |
119 } |
120 |
120 |