]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it already exists.
authorTom Tromey <tromey@redhat.com>
Thu, 19 Jan 2006 00:57:00 +0000 (00:57 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 19 Jan 2006 00:57:00 +0000 (00:57 +0000)
* jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it
already exists.

From-SVN: r109936

libjava/ChangeLog
libjava/jni.cc

index 032a98db4ceb23d04d1967d98f4b7f0fb46fdce3..31f66e6a04dae5aa66d2bf0d5c09521f1bd223e8 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-18  Tom Tromey  <tromey@redhat.com>
+
+       * jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it
+       already exists.
+
 2006-01-18  Keith Seitz  <keiths@redhat.com>
 
        * include/java-interp.h (_Jv_CompileMethod): Add declaration.
index fd8270657188988c3f86779d900209a429246fe8..5a93753f006db5afd9147941ffffea5f72bb55e5 100644 (file)
@@ -1,6 +1,6 @@
 // jni.cc - JNI implementation, including the jump table.
 
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation
 
    This file is part of libgcj.
@@ -2352,10 +2352,14 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv,
     }
 
   // Attaching an already-attached thread is a no-op.
-  if (_Jv_GetCurrentJNIEnv () != NULL)
-    return 0;
+  JNIEnv *env = _Jv_GetCurrentJNIEnv ();
+  if (env != NULL)
+    {
+      *penv = reinterpret_cast<void *> (env);
+      return 0;
+    }
 
-  JNIEnv *env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
+  env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
   if (env == NULL)
     return JNI_ERR;
   env->p = &_Jv_JNIFunctions;