Switch to Thread::WalkStack rather than manual Frame::Next.
Also fix test 039.
Change-Id: I07d0559bb86d67a7f7947768bd8370fb4cf06c26
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index c5ffec1..3bbd3cd 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -356,8 +356,7 @@
}
static const ClassLoader* GetClassLoader(Thread* self) {
- Frame frame = self->GetTopOfStack();
- Method* method = frame.GetMethod();
+ Method* method = self->GetCurrentMethod();
if (method == NULL || PrettyMethod(method, false) == "java.lang.Runtime.nativeLoad") {
return self->GetClassLoaderOverride();
}
@@ -2655,11 +2654,10 @@
static jint DestroyJavaVM(JavaVM* vm) {
if (vm == NULL) {
return JNI_ERR;
- } else {
- JavaVMExt* raw_vm = reinterpret_cast<JavaVMExt*>(vm);
- delete raw_vm->runtime;
- return JNI_OK;
}
+ JavaVMExt* raw_vm = reinterpret_cast<JavaVMExt*>(vm);
+ delete raw_vm->runtime;
+ return JNI_OK;
}
static jint AttachCurrentThread(JavaVM* vm, JNIEnv** p_env, void* thr_args) {
@@ -2673,12 +2671,11 @@
static jint DetachCurrentThread(JavaVM* vm) {
if (vm == NULL) {
return JNI_ERR;
- } else {
- JavaVMExt* raw_vm = reinterpret_cast<JavaVMExt*>(vm);
- Runtime* runtime = raw_vm->runtime;
- runtime->DetachCurrentThread();
- return JNI_OK;
}
+ JavaVMExt* raw_vm = reinterpret_cast<JavaVMExt*>(vm);
+ Runtime* runtime = raw_vm->runtime;
+ runtime->DetachCurrentThread();
+ return JNI_OK;
}
static jint GetEnv(JavaVM* vm, void** env, jint version) {