< prev index next >

src/share/vm/gc/serial/markSweep.inline.hpp

Print this page
rev 12310 : [mq]: gcinterface.patch

*** 48,69 **** template <class T> inline void MarkSweep::adjust_pointer(T* p) { T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); ! assert(Universe::heap()->is_in(obj), "should be in heap"); oop new_obj = oop(obj->mark()->decode_pointer()); assert(is_archive_object(obj) || // no forwarding of archive objects new_obj != NULL || // is forwarding ptr? obj->mark() == markOopDesc::prototype() || // not gc marked? (UseBiasedLocking && obj->mark()->has_bias_pattern()), // not gc marked? "should be forwarded"); if (new_obj != NULL) { if (!is_archive_object(obj)) { ! assert(Universe::heap()->is_in_reserved(new_obj), "should be in object space"); oopDesc::encode_store_heap_oop_not_null(p, new_obj); } } } --- 48,69 ---- template <class T> inline void MarkSweep::adjust_pointer(T* p) { T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); ! assert(GC::gc()->heap()->is_in(obj), "should be in heap"); oop new_obj = oop(obj->mark()->decode_pointer()); assert(is_archive_object(obj) || // no forwarding of archive objects new_obj != NULL || // is forwarding ptr? obj->mark() == markOopDesc::prototype() || // not gc marked? (UseBiasedLocking && obj->mark()->has_bias_pattern()), // not gc marked? "should be forwarded"); if (new_obj != NULL) { if (!is_archive_object(obj)) { ! assert(GC::gc()->heap()->is_in_reserved(new_obj), "should be in object space"); oopDesc::encode_store_heap_oop_not_null(p, new_obj); } } }
< prev index next >