If JNIEnvExt is-a JNIEnv, we can lose a bunch of reinterpret_casts.
Likewise with JavaVM.
Change-Id: I505e42e9197951b6c82e6dbf8dcc1fc4dd5aad31
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index 0458ceb..0845c0f 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -2084,7 +2084,7 @@
ScopedJniThreadState ts(env);
Runtime* runtime = Runtime::Current();
if (runtime != NULL) {
- *vm = reinterpret_cast<JavaVM*>(runtime->GetJavaVM());
+ *vm = runtime->GetJavaVM();
} else {
*vm = NULL;
}
@@ -2383,12 +2383,12 @@
static const size_t kLocalsMax = 512; // Arbitrary sanity check.
JNIEnvExt::JNIEnvExt(Thread* self, bool check_jni)
- : fns(&gNativeInterface),
- self(self),
+ : self(self),
check_jni(check_jni),
critical(false),
monitors("monitors", kMonitorsInitial, kMonitorsMax),
locals(kLocalsInitial, kLocalsMax, kLocal) {
+ functions = &gNativeInterface;
}
// JNI Invocation interface.
@@ -2409,8 +2409,8 @@
if (runtime == NULL) {
return JNI_ERR;
} else {
- *p_env = reinterpret_cast<JNIEnv*>(Thread::Current()->GetJniEnv());
- *p_vm = reinterpret_cast<JavaVM*>(runtime->GetJavaVM());
+ *p_env = Thread::Current()->GetJniEnv();
+ *p_vm = runtime->GetJavaVM();
return JNI_OK;
}
}
@@ -2421,7 +2421,7 @@
*vm_count = 0;
} else {
*vm_count = 1;
- vms[0] = reinterpret_cast<JavaVM*>(runtime->GetJavaVM());
+ vms[0] = runtime->GetJavaVM();
}
return JNI_OK;
}
@@ -2532,8 +2532,7 @@
static const size_t kWeakGlobalsMax = 51200; // Arbitrary sanity check.
JavaVMExt::JavaVMExt(Runtime* runtime, bool check_jni, bool verbose_jni)
- : fns(&gInvokeInterface),
- runtime(runtime),
+ : runtime(runtime),
check_jni(check_jni),
verbose_jni(verbose_jni),
pin_table("pin table", kPinTableInitialSize, kPinTableMaxSize),
@@ -2541,6 +2540,7 @@
globals(kGlobalsInitial, kGlobalsMax, kGlobal),
weak_globals_lock(Mutex::Create("JNI weak global reference table lock")),
weak_globals(kWeakGlobalsInitial, kWeakGlobalsMax, kWeakGlobal) {
+ functions = &gInvokeInterface;
}
JavaVMExt::~JavaVMExt() {
@@ -2668,7 +2668,7 @@
if (verbose_jni) {
LOG(INFO) << "[Calling JNI_OnLoad in \"" << path << "\"]";
}
- int version = (*jni_on_load)(reinterpret_cast<JavaVM*>(this), NULL);
+ int version = (*jni_on_load)(this, NULL);
self->SetState(old_state);
self->SetClassLoaderOverride(old_class_loader);;