src/hotspot/share/oops/oop.cpp
changeset 57777 90ead0febf56
parent 54842 f9c8e16db3dd
child 57903 5e2576c303a2
equal deleted inserted replaced
57774:21dccfac0ec5 57777:90ead0febf56
   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