src/share/vm/prims/whitebox.cpp
Print this page
*** 114,141 ****
return closure.found();
WB_END
WB_ENTRY(void, WB_AddToBootstrapClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
#if INCLUDE_JVMTI
! ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
! const char* seg = env->GetStringUTFChars(segment, NULL);
JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
jvmtiError err = jvmti_env->AddToBootstrapClassLoaderSearch(seg);
assert(err == JVMTI_ERROR_NONE, "must not fail");
env->ReleaseStringUTFChars(segment, seg);
#endif
}
WB_END
WB_ENTRY(void, WB_AddToSystemClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
#if INCLUDE_JVMTI
! ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
! const char* seg = env->GetStringUTFChars(segment, NULL);
JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
jvmtiError err = jvmti_env->AddToSystemClassLoaderSearch(seg);
assert(err == JVMTI_ERROR_NONE, "must not fail");
env->ReleaseStringUTFChars(segment, seg);
#endif
}
WB_END
--- 114,153 ----
return closure.found();
WB_END
WB_ENTRY(void, WB_AddToBootstrapClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
#if INCLUDE_JVMTI
! const char* seg;
! {
! ThreadToNativeFromVM ttnfv(thread);
! seg = env->GetStringUTFChars(segment, NULL);
! }
JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
jvmtiError err = jvmti_env->AddToBootstrapClassLoaderSearch(seg);
assert(err == JVMTI_ERROR_NONE, "must not fail");
+ {
+ ThreadToNativeFromVM ttnfv(thread);
env->ReleaseStringUTFChars(segment, seg);
+ }
#endif
}
WB_END
WB_ENTRY(void, WB_AddToSystemClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
#if INCLUDE_JVMTI
! const char* seg;
! {
! ThreadToNativeFromVM ttnfv(thread);
! seg = env->GetStringUTFChars(segment, NULL);
! }
JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
jvmtiError err = jvmti_env->AddToSystemClassLoaderSearch(seg);
assert(err == JVMTI_ERROR_NONE, "must not fail");
+ {
+ ThreadToNativeFromVM ttnfv(thread);
env->ReleaseStringUTFChars(segment, seg);
+ }
#endif
}
WB_END