1.1 --- a/src/share/vm/classfile/systemDictionary.cpp Tue Jul 01 09:03:55 2014 +0200 1.2 +++ b/src/share/vm/classfile/systemDictionary.cpp Mon Jul 07 10:12:40 2014 +0200 1.3 @@ -1613,13 +1613,7 @@ 1.4 // system dictionary and follows the remaining classes' contents. 1.5 1.6 void SystemDictionary::always_strong_oops_do(OopClosure* blk) { 1.7 - blk->do_oop(&_java_system_loader); 1.8 - blk->do_oop(&_system_loader_lock_obj); 1.9 - 1.10 - dictionary()->always_strong_oops_do(blk); 1.11 - 1.12 - // Visit extra methods 1.13 - invoke_method_table()->oops_do(blk); 1.14 + roots_oops_do(blk, NULL); 1.15 } 1.16 1.17 void SystemDictionary::always_strong_classes_do(KlassClosure* closure) { 1.18 @@ -1686,6 +1680,17 @@ 1.19 return unloading_occurred; 1.20 } 1.21 1.22 +void SystemDictionary::roots_oops_do(OopClosure* strong, OopClosure* weak) { 1.23 + strong->do_oop(&_java_system_loader); 1.24 + strong->do_oop(&_system_loader_lock_obj); 1.25 + 1.26 + // Adjust dictionary 1.27 + dictionary()->roots_oops_do(strong, weak); 1.28 + 1.29 + // Visit extra methods 1.30 + invoke_method_table()->oops_do(strong); 1.31 +} 1.32 + 1.33 void SystemDictionary::oops_do(OopClosure* f) { 1.34 f->do_oop(&_java_system_loader); 1.35 f->do_oop(&_system_loader_lock_obj);