Fix JNI Race Condition, Fix Release Builds and Fix Searching

This commit fixes JNI race conditions by usage of a mutex, fixes a bug in release builds due to ProGuard member obfuscation and fix searching by fixing the HeaderAdapter filter.
This commit is contained in:
◱ PixelyIon
2019-12-05 21:05:34 +05:30
committed by ◱ PixelyIon
parent b3e811d488
commit c5dce22a8c
12 changed files with 125 additions and 86 deletions

View File

@ -0,0 +1,13 @@
#include "jvm.h"
namespace skyline {
JvmManager::JvmManager(JNIEnv *env, jobject instance) : env(env), instance(instance), instanceClass(env->GetObjectClass(instance)) {}
jobject JvmManager::GetField(const char *key, const char *signature) {
return env->GetObjectField(instance, env->GetFieldID(instanceClass, key, signature));
}
bool JvmManager::CheckNull(const char *key, const char *signature) {
return env->IsSameObject(env->GetObjectField(instance, env->GetFieldID(instanceClass, key, signature)), nullptr);
}
}