774 (*env)->DeleteLocalRef(env, enc); 775 } 776 } else { 777 JNU_ThrowInternalError(env, "platform encoding undefined"); 778 return; 779 } 780 781 /* Initialize method-id cache */ 782 String_getBytes_ID = (*env)->GetMethodID(env, strClazz, 783 "getBytes", "(Ljava/lang/String;)[B"); 784 CHECK_NULL(String_getBytes_ID); 785 String_init_ID = (*env)->GetMethodID(env, strClazz, 786 "<init>", "([BLjava/lang/String;)V"); 787 CHECK_NULL(String_init_ID); 788 String_coder_ID = (*env)->GetFieldID(env, strClazz, "coder", "B"); 789 CHECK_NULL(String_coder_ID); 790 String_value_ID = (*env)->GetFieldID(env, strClazz, "value", "[B"); 791 CHECK_NULL(String_value_ID); 792 } 793 794 // This alias is used for compatibility with 32 bit Windows 795 JNIEXPORT jstring 796 NewStringPlatform(JNIEnv *env, const char *str) 797 { 798 return JNU_NewStringPlatform(env, str); 799 } 800 801 JNIEXPORT jstring JNICALL 802 JNU_NewStringPlatform(JNIEnv *env, const char *str) 803 { 804 if (fastEncoding == FAST_UTF_8) 805 return newStringUTF8(env, str); 806 if (fastEncoding == FAST_8859_1) 807 return newString8859_1(env, str); 808 if (fastEncoding == FAST_646_US) 809 return newString646_US(env, str); 810 if (fastEncoding == FAST_CP1252) 811 return newStringCp1252(env, str); 812 if (fastEncoding == NO_ENCODING_YET) { 813 JNU_ThrowInternalError(env, "platform encoding not initialized"); 814 return NULL; 815 } 816 return newStringJava(env, str); 817 } 818 819 JNIEXPORT const char * 820 GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy) | 774 (*env)->DeleteLocalRef(env, enc); 775 } 776 } else { 777 JNU_ThrowInternalError(env, "platform encoding undefined"); 778 return; 779 } 780 781 /* Initialize method-id cache */ 782 String_getBytes_ID = (*env)->GetMethodID(env, strClazz, 783 "getBytes", "(Ljava/lang/String;)[B"); 784 CHECK_NULL(String_getBytes_ID); 785 String_init_ID = (*env)->GetMethodID(env, strClazz, 786 "<init>", "([BLjava/lang/String;)V"); 787 CHECK_NULL(String_init_ID); 788 String_coder_ID = (*env)->GetFieldID(env, strClazz, "coder", "B"); 789 CHECK_NULL(String_coder_ID); 790 String_value_ID = (*env)->GetFieldID(env, strClazz, "value", "[B"); 791 CHECK_NULL(String_value_ID); 792 } 793 794 JNIEXPORT jstring JNICALL 795 JNU_NewStringPlatform(JNIEnv *env, const char *str) 796 { 797 if (fastEncoding == FAST_UTF_8) 798 return newStringUTF8(env, str); 799 if (fastEncoding == FAST_8859_1) 800 return newString8859_1(env, str); 801 if (fastEncoding == FAST_646_US) 802 return newString646_US(env, str); 803 if (fastEncoding == FAST_CP1252) 804 return newStringCp1252(env, str); 805 if (fastEncoding == NO_ENCODING_YET) { 806 JNU_ThrowInternalError(env, "platform encoding not initialized"); 807 return NULL; 808 } 809 return newStringJava(env, str); 810 } 811 812 JNIEXPORT const char * 813 GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy) |