src/share/vm/classfile/systemDictionary.cpp

changeset 6992
2c6ef90f030a
parent 6911
ce8f6bb717c9
child 7064
c3990b8c710e
     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);

mercurial