< prev index next >

src/share/vm/oops/instanceRefKlass.inline.hpp

Print this page
rev 8203 : imported patch remove_config

*** 53,63 **** // treat referent as normal oop Devirtualizer<nv>::do_oop(closure, referent_addr); } } T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj); - if (ReferenceProcessor::pending_list_uses_discovered_field()) { T next_oop = oopDesc::load_heap_oop(next_addr); // Treat discovered as normal oop, if ref is not "active" (next non-NULL) if (!oopDesc::is_null(next_oop) && contains(disc_addr)) { // i.e. ref is not "active" debug_only( --- 53,62 ----
*** 66,87 **** PTR_FORMAT, p2i(disc_addr)); } ) Devirtualizer<nv>::do_oop(closure, disc_addr); } - } else { - // In the case of older JDKs which do not use the discovered field for - // the pending list, an inactive ref (next != NULL) must always have a - // NULL discovered field. - debug_only( - T next_oop = oopDesc::load_heap_oop(next_addr); - T disc_oop = oopDesc::load_heap_oop(disc_addr); - assert(oopDesc::is_null(next_oop) || oopDesc::is_null(disc_oop), - err_msg("Found an inactive reference " PTR_FORMAT " with a non-NULL" - "discovered field", p2i(obj))); - ) - } // treat next as normal oop if (contains(next_addr)) { Devirtualizer<nv>::do_oop(closure, next_addr); } } --- 65,74 ----
< prev index next >