Mercurial > hg > jdk9-shenandoah > hotspot
changeset 9626:fd59c4412e00
Resolve and update the referent field in Reference object during mark-compact.
author | rkennke |
---|---|
date | Fri, 25 Sep 2015 16:45:39 +0200 |
parents | c7cafe8a2ba0 |
children | c02a7038ce96 |
files | src/share/vm/gc/serial/markSweep.cpp |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/gc/serial/markSweep.cpp Thu Sep 24 12:49:23 2015 +0200 +++ b/src/share/vm/gc/serial/markSweep.cpp Fri Sep 25 16:45:39 2015 +0200 @@ -124,6 +124,9 @@ ) if (!oopDesc::is_null(heap_oop)) { oop referent = oopDesc::decode_heap_oop_not_null(heap_oop); + if (UseShenandoahGC) { + referent = ShenandoahBarrierSet::resolve_and_update_oop_static(referent_addr, referent); + } if (!referent->is_gc_marked() && MarkSweep::ref_processor()->discover_reference(obj, klass->reference_type())) { // reference was discovered, referent will be traversed later