src/share/vm/memory/sharedHeap.cpp

changeset 5194
eda078b01c65
parent 5159
001ec9515f84
child 5277
01522ca68fc7
     1.1 --- a/src/share/vm/memory/sharedHeap.cpp	Fri May 24 14:16:41 2013 +0200
     1.2 +++ b/src/share/vm/memory/sharedHeap.cpp	Mon May 27 15:22:59 2013 +0200
     1.3 @@ -45,6 +45,7 @@
     1.4    SH_PS_FlatProfiler_oops_do,
     1.5    SH_PS_Management_oops_do,
     1.6    SH_PS_SystemDictionary_oops_do,
     1.7 +  SH_PS_ClassLoaderDataGraph_oops_do,
     1.8    SH_PS_jvmti_oops_do,
     1.9    SH_PS_StringTable_oops_do,
    1.10    SH_PS_CodeCache_oops_do,
    1.11 @@ -173,12 +174,18 @@
    1.12    if (!_process_strong_tasks->is_task_claimed(SH_PS_SystemDictionary_oops_do)) {
    1.13      if (so & SO_AllClasses) {
    1.14        SystemDictionary::oops_do(roots);
    1.15 +    } else if (so & SO_SystemClasses) {
    1.16 +      SystemDictionary::always_strong_oops_do(roots);
    1.17 +    } else {
    1.18 +      fatal("We should always have selected either SO_AllClasses or SO_SystemClasses");
    1.19 +    }
    1.20 +  }
    1.21 +
    1.22 +  if (!_process_strong_tasks->is_task_claimed(SH_PS_ClassLoaderDataGraph_oops_do)) {
    1.23 +    if (so & SO_AllClasses) {
    1.24        ClassLoaderDataGraph::oops_do(roots, klass_closure, !is_scavenging);
    1.25      } else if (so & SO_SystemClasses) {
    1.26 -      SystemDictionary::always_strong_oops_do(roots);
    1.27        ClassLoaderDataGraph::always_strong_oops_do(roots, klass_closure, !is_scavenging);
    1.28 -    } else {
    1.29 -      fatal("We should always have selected either SO_AllClasses or SO_SystemClasses");
    1.30      }
    1.31    }
    1.32  

mercurial