fix: GetJavaVM now returns a pointer to a global variable ptr_jvm instead of a local...
authormotse <none@none>
Tue, 1 Mar 2005 14:09:25 +0000 (14:09 +0000)
committermotse <none@none>
Tue, 1 Mar 2005 14:09:25 +0000 (14:09 +0000)
src/native/jni.c

index 4e61dbcf155458bdc6bb92c78bb318e71affa76b..bb77db195f03039325b588d695419e61765b8b27 100644 (file)
@@ -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 $
 
 */
 
 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;
 }