< prev index next >

src/share/vm/gc/shared/referenceProcessor.cpp

Print this page
rev 8961 : [mq]: diff-shenandoah.patch

*** 444,453 **** --- 444,454 ---- assert(_discovered_addr && discovered->is_oop_or_null(), err_msg("Expected an oop or NULL for discovered field at " PTR_FORMAT, p2i(discovered))); _next = discovered; _referent_addr = java_lang_ref_Reference::referent_addr(_ref); _referent = java_lang_ref_Reference::referent(_ref); + assert(_referent == oopDesc::bs()->resolve_oop(_referent), "expect forwarded referent"); assert(Universe::heap()->is_in_reserved_or_null(_referent), "Wrong oop found in java.lang.Reference object"); assert(allow_null_referent ? _referent->is_oop_or_null() : _referent->is_oop(),
*** 645,654 **** --- 646,656 ---- ReferenceProcessor::clear_discovered_references(DiscoveredList& refs_list) { oop obj = NULL; oop next = refs_list.head(); while (next != obj) { obj = next; + assert(obj == oopDesc::bs()->resolve_oop(obj), "expect forwarded obj"); next = java_lang_ref_Reference::discovered(obj); java_lang_ref_Reference::set_discovered_raw(obj, NULL); } refs_list.set_head(NULL); refs_list.set_length(0);
*** 1092,1102 **** assert(RefDiscoveryPolicy == ReferenceBasedDiscovery, "Unrecognized policy"); // Check assumption that an object is not potentially // discovered twice except by concurrent collectors that potentially // trace the same Reference object twice. ! assert(UseConcMarkSweepGC || UseG1GC, "Only possible with a concurrent marking collector"); return true; } } --- 1094,1104 ---- assert(RefDiscoveryPolicy == ReferenceBasedDiscovery, "Unrecognized policy"); // Check assumption that an object is not potentially // discovered twice except by concurrent collectors that potentially // trace the same Reference object twice. ! assert(UseConcMarkSweepGC || UseG1GC || UseShenandoahGC, "Only possible with a concurrent marking collector"); return true; } }
< prev index next >