Fix get_jni_env.

GitOrigin-RevId: 5da8136b7c96affd3a39194624dc35c415bfad68
This commit is contained in:
levlam 2020-10-11 14:53:12 +03:00
parent 10a7edfbea
commit 66d8ee5228

View File

@ -79,13 +79,16 @@ void register_native_method(JNIEnv *env, jclass clazz, std::string name, std::st
std::unique_ptr<JNIEnv, JvmThreadDetacher> get_jni_env(JavaVM *java_vm, jint jni_version) {
JNIEnv *env = nullptr;
if (java_vm->GetEnv(reinterpret_cast<void **>(&env), jni_version) == JNI_EDETACHED && env != nullptr) {
if (java_vm->GetEnv(reinterpret_cast<void **>(&env), jni_version) == JNI_EDETACHED) {
#ifdef JDK1_2 // if not Android JNI
auto p_env = reinterpret_cast<void **>(&env);
#else
auto p_env = &env;
#endif
java_vm->AttachCurrentThread(p_env, nullptr);
if (java_vm->AttachCurrentThread(p_env, nullptr) != JNI_OK) {
java_vm = nullptr;
env = nullptr;
}
} else {
java_vm = nullptr;
}