From 0949d685d25c7bc3c345cf2185841de7ef023e82 Mon Sep 17 00:00:00 2001 From: motse Date: Tue, 1 Mar 2005 14:09:25 +0000 Subject: [PATCH] fix: GetJavaVM now returns a pointer to a global variable ptr_jvm instead of a local one. GetEnv returns a pointer to a pointer (ptr_env) not only one pointer (JNI_JNIEnvTable). --- src/native/jni.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/native/jni.c b/src/native/jni.c index 4e61dbcf1..bb77db195 100644 --- a/src/native/jni.c +++ b/src/native/jni.c @@ -31,7 +31,7 @@ Martin Platter Christian Thalinger - $Id: jni.c 1922 2005-02-10 10:42:30Z twisti $ + $Id: jni.c 1969 2005-03-01 14:09:25Z motse $ */ @@ -77,6 +77,10 @@ extern const struct JNIInvokeInterface JNI_JavaVMTable; extern struct JNINativeInterface JNI_JNIEnvTable; +/* pointers to VM and the environment needed by GetJavaVM and GetEnv */ +static JavaVM ptr_jvm = (JavaVM) &JNI_JavaVMTable; +static void* ptr_env = (void*) &JNI_JNIEnvTable; + #define PTR_TO_ITEM(ptr) ((u8)(size_t)(ptr)) @@ -3138,10 +3142,7 @@ jint MonitorExit(JNIEnv *env, jobject obj) jint GetJavaVM(JNIEnv *env, JavaVM **vm) { - JavaVM tmp_vm; - - tmp_vm = (JavaVM) &JNI_JavaVMTable; - *vm = &tmp_vm; + *vm = &ptr_jvm; return 0; } @@ -3375,7 +3376,7 @@ jint GetEnv(JavaVM *vm, void **env, jint version) } */ - *env = &JNI_JNIEnvTable; + *env = &ptr_env; return JNI_OK; } -- 2.25.1