< prev index next >
src/share/vm/prims/jniCheck.cpp
Print this page
rev 13037 : 8181147: JNI_GetStringPlatformChars should have a fast path for UTF-8
Reviewed-by: shade, chegar, erikj
@@ -1512,10 +1512,40 @@
(const jchar*) guarded.release_for_freeing());
}
functionExit(thr);
JNI_END
+JNI_ENTRY_CHECKED(const jbyte*,
+ checked_jni_GetStringBytesCritical(JNIEnv *env,
+ jstring string,
+ jint* len,
+ jbyte *encoding,
+ jboolean *isCopy))
+ functionEnterCritical(thr);
+ IN_VM(
+ checkString(thr, string);
+ )
+ const jbyte *result = UNCHECKED()->GetStringBytesCritical(env, string, len, encoding, isCopy);
+ functionExit(thr);
+ return result;
+JNI_END
+
+JNI_ENTRY_CHECKED(void,
+ checked_jni_ReleaseStringBytesCritical(JNIEnv *env,
+ jstring str,
+ const jbyte *bytes))
+ functionEnterCriticalExceptionAllowed(thr);
+ IN_VM(
+ checkString(thr, str);
+ )
+ /* The Hotspot JNI code does not use the parameters, so just check the
+ * string parameter as a minor sanity check
+ */
+ UNCHECKED()->ReleaseStringBytesCritical(env, str, bytes);
+ functionExit(thr);
+JNI_END
+
JNI_ENTRY_CHECKED(jstring,
checked_jni_NewStringUTF(JNIEnv *env,
const char *utf))
functionEnter(thr);
jstring result = UNCHECKED()->NewStringUTF(env,utf);
@@ -2195,10 +2225,12 @@
checked_jni_NewString,
checked_jni_GetStringLength,
checked_jni_GetStringChars,
checked_jni_ReleaseStringChars,
+ checked_jni_GetStringBytesCritical,
+ checked_jni_ReleaseStringBytesCritical,
checked_jni_NewStringUTF,
checked_jni_GetStringUTFLength,
checked_jni_GetStringUTFChars,
checked_jni_ReleaseStringUTFChars,
< prev index next >