diff -r ff74a3c584e5 -r f7cc25dda38a src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Tue Jun 11 14:59:46 2019 -0700 +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Tue Jun 11 19:15:31 2019 -0400 @@ -56,12 +56,16 @@ ShenandoahSerialRoot _management_root; ShenandoahSerialRoot _system_dictionary_root; ShenandoahSerialRoot _jvmti_root; - ShenandoahSerialRoot _jni_handle_root; public: ShenandoahSerialRoots(); void oops_do(OopClosure* cl, uint worker_id); }; +class ShenandoahJNIHandleRoots : public ShenandoahSerialRoot { +public: + ShenandoahJNIHandleRoots(); +}; + class ShenandoahThreadRoots { private: const bool _is_par; @@ -126,6 +130,7 @@ class ShenandoahRootScanner : public ShenandoahRootProcessor { private: ShenandoahSerialRoots _serial_roots; + ShenandoahJNIHandleRoots _jni_roots; ShenandoahClassLoaderDataRoots _cld_roots; ShenandoahThreadRoots _thread_roots; ShenandoahCodeCacheRoots _code_roots; @@ -152,6 +157,7 @@ class ShenandoahRootEvacuator : public ShenandoahRootProcessor { private: ShenandoahSerialRoots _serial_roots; + ShenandoahJNIHandleRoots _jni_roots; ShenandoahClassLoaderDataRoots _cld_roots; ShenandoahThreadRoots _thread_roots; ShenandoahWeakRoots _weak_roots; @@ -168,6 +174,7 @@ class ShenandoahRootUpdater : public ShenandoahRootProcessor { private: ShenandoahSerialRoots _serial_roots; + ShenandoahJNIHandleRoots _jni_roots; ShenandoahClassLoaderDataRoots _cld_roots; ShenandoahThreadRoots _thread_roots; ShenandoahWeakRoots _weak_roots; @@ -186,6 +193,7 @@ class ShenandoahRootAdjuster : public ShenandoahRootProcessor { private: ShenandoahSerialRoots _serial_roots; + ShenandoahJNIHandleRoots _jni_roots; ShenandoahClassLoaderDataRoots _cld_roots; ShenandoahThreadRoots _thread_roots; ShenandoahWeakRoots _weak_roots;