diff src/share/vm/classfile/symbolTable.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 df1347358fe6
children 352622fd140a
line wrap: on
line diff
--- a/src/share/vm/classfile/symbolTable.cpp	Mon Mar 21 18:38:00 2011 -0700
+++ b/src/share/vm/classfile/symbolTable.cpp	Tue Mar 22 13:36:33 2011 -0700
@@ -530,7 +530,7 @@
 
   Handle string;
   // try to reuse the string if possible
-  if (!string_or_null.is_null() && string_or_null()->is_perm()) {
+  if (!string_or_null.is_null() && (!JavaObjectsInPerm || string_or_null()->is_perm())) {
     string = string_or_null;
   } else {
     string = java_lang_String::create_tenured_from_unicode(name, len, CHECK_NULL);
@@ -662,7 +662,7 @@
     for ( ; p != NULL; p = p->next()) {
       oop s = p->literal();
       guarantee(s != NULL, "interned string is NULL");
-      guarantee(s->is_perm(), "interned string not in permspace");
+      guarantee(s->is_perm() || !JavaObjectsInPerm, "interned string not in permspace");
 
       int length;
       jchar* chars = java_lang_String::as_unicode_string(s, length);