1.1 --- a/src/share/vm/prims/jni.cpp Mon Dec 06 20:21:15 2010 -0500 1.2 +++ b/src/share/vm/prims/jni.cpp Tue Dec 07 03:15:45 2010 -0800 1.3 @@ -2113,11 +2113,10 @@ 1.4 JNI_ENTRY(const char*, jni_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy)) 1.5 JNIWrapper("GetStringUTFChars"); 1.6 DTRACE_PROBE3(hotspot_jni, GetStringUTFChars__entry, env, string, isCopy); 1.7 - ResourceMark rm; 1.8 - char* str = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(string)); 1.9 - int length = (int)strlen(str); 1.10 - char* result = AllocateHeap(length+1, "GetStringUTFChars"); 1.11 - strcpy(result, str); 1.12 + oop java_string = JNIHandles::resolve_non_null(string); 1.13 + size_t length = java_lang_String::utf8_length(java_string); 1.14 + char* result = AllocateHeap(length + 1, "GetStringUTFChars"); 1.15 + java_lang_String::as_utf8_string(java_string, result, (int) length + 1); 1.16 if (isCopy != NULL) *isCopy = JNI_TRUE; 1.17 DTRACE_PROBE1(hotspot_jni, GetStringUTFChars__return, result); 1.18 return result;