changeset 54664:5ddea9d48649

8223184: Shenandoah: Missing roots in SRP::process_all_roots_slow Reviewed-by: shade
author zgu
date Wed, 01 May 2019 10:12:51 -0400
parents f03d5a093093
children f14a826e3c2e
files src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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.