1.1 --- a/src/share/vm/classfile/javaClasses.cpp Fri Apr 26 08:40:24 2013 -0700 1.2 +++ b/src/share/vm/classfile/javaClasses.cpp Mon Apr 29 16:13:57 2013 -0400 1.3 @@ -315,14 +315,18 @@ 1.4 return string; 1.5 } 1.6 1.7 -jchar* java_lang_String::as_unicode_string(oop java_string, int& length) { 1.8 +jchar* java_lang_String::as_unicode_string(oop java_string, int& length, TRAPS) { 1.9 typeArrayOop value = java_lang_String::value(java_string); 1.10 int offset = java_lang_String::offset(java_string); 1.11 length = java_lang_String::length(java_string); 1.12 1.13 - jchar* result = NEW_RESOURCE_ARRAY(jchar, length); 1.14 - for (int index = 0; index < length; index++) { 1.15 - result[index] = value->char_at(index + offset); 1.16 + jchar* result = NEW_RESOURCE_ARRAY_RETURN_NULL(jchar, length); 1.17 + if (result != NULL) { 1.18 + for (int index = 0; index < length; index++) { 1.19 + result[index] = value->char_at(index + offset); 1.20 + } 1.21 + } else { 1.22 + THROW_MSG_0(vmSymbols::java_lang_OutOfMemoryError(), "could not allocate Unicode string"); 1.23 } 1.24 return result; 1.25 }