8223184: Shenandoah: Missing roots in SRP::process_all_roots_slow
authorzgu
Wed, 01 May 2019 10:12:51 -0400
changeset 54664 5ddea9d48649
parent 54663 f03d5a093093
child 54665 f14a826e3c2e
8223184: Shenandoah: Missing roots in SRP::process_all_roots_slow Reviewed-by: shade
src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp	Wed May 01 08:56:38 2019 -0400
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp	Wed May 01 10:12:51 2019 -0400
@@ -123,6 +123,14 @@
   ObjectSynchronizer::oops_do(oops);
   SystemDictionary::oops_do(oops);
 
+  AlwaysTrueClosure always_true;
+  WeakProcessor::weak_oops_do(&always_true, oops);
+  JvmtiExport::weak_oops_do(&always_true, oops);
+
+  if (ShenandoahStringDedup::is_enabled()) {
+    ShenandoahStringDedup::oops_do_slow(oops);
+  }
+
   // Do thread roots the last. This allows verification code to find
   // any broken objects from those special roots first, not the accidental
   // dangling reference from the thread root.