diff src/share/vm/memory/sharedHeap.cpp @ 2379:b099aaf51bf8

6962931: move interned strings out of the perm gen Reviewed-by: never, coleenp, ysr, jwilhelm
author jcoomes
date Tue, 22 Mar 2011 13:36:33 -0700
parents 3582bf76420e
children 1d1603768966
line wrap: on
line diff
--- a/src/share/vm/memory/sharedHeap.cpp	Mon Mar 21 18:38:00 2011 -0700
+++ b/src/share/vm/memory/sharedHeap.cpp	Tue Mar 22 13:36:33 2011 -0700
@@ -171,11 +171,13 @@
   }
 
   if (!_process_strong_tasks->is_task_claimed(SH_PS_StringTable_oops_do)) {
-     if (so & SO_Strings) {
-       StringTable::oops_do(roots);
-     }
-    // Verify if the string table contents are in the perm gen
-    NOT_PRODUCT(StringTable::oops_do(&assert_is_perm_closure));
+    if (so & SO_Strings || (!collecting_perm_gen && !JavaObjectsInPerm)) {
+      StringTable::oops_do(roots);
+    }
+    if (JavaObjectsInPerm) {
+      // Verify the string table contents are in the perm gen
+      NOT_PRODUCT(StringTable::oops_do(&assert_is_perm_closure));
+    }
   }
 
   if (!_process_strong_tasks->is_task_claimed(SH_PS_CodeCache_oops_do)) {