8231769: Test tools/javac/tree/MakeTypeTest.java fails with -Xcheck:jni

Delete local jni handles in create_from_platform_dependent_str() after upcall to Java.

Reviewed-by: dholmes, hseigel
This commit is contained in:
Coleen Phillimore 2019-10-11 08:49:42 -04:00
parent 179aab2fe2
commit 986f2bbf2c

View File

@ -384,13 +384,17 @@ Handle java_lang_String::create_from_platform_dependent_str(const char* str, TRA
}
jstring js = NULL;
{ JavaThread* thread = (JavaThread*)THREAD;
assert(thread->is_Java_thread(), "must be java thread");
{
assert(THREAD->is_Java_thread(), "must be java thread");
JavaThread* thread = (JavaThread*)THREAD;
HandleMark hm(thread);
ThreadToNativeFromVM ttn(thread);
js = (_to_java_string_fn)(thread->jni_environment(), str);
}
return Handle(THREAD, JNIHandles::resolve(js));
Handle native_platform_string(THREAD, JNIHandles::resolve(js));
JNIHandles::destroy_local(js); // destroy local JNIHandle.
return native_platform_string;
}
// Converts a Java String to a native C string that can be used for