src/share/vm/prims/jni.cpp

changeset 2331
017cd8bce8a8
parent 2322
828eafbd85cc
child 2497
3582bf76420e
     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;

mercurial