aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-01-19 00:57:00 +0000
committerTom Tromey <tromey@gcc.gnu.org>2006-01-19 00:57:00 +0000
commitec5dd52b373735f93077aece00864c48c7a8bae4 (patch)
tree07c7e50757b9549955bd62df9c7e3dea9daadeeb /libjava/jni.cc
parent5bf5a10b1ccacfc5eac5c1941d2198eb89258ce9 (diff)
downloadgcc-ec5dd52b373735f93077aece00864c48c7a8bae4.zip
gcc-ec5dd52b373735f93077aece00864c48c7a8bae4.tar.gz
gcc-ec5dd52b373735f93077aece00864c48c7a8bae4.tar.bz2
jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it already exists.
* jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it already exists. From-SVN: r109936
Diffstat (limited to 'libjava/jni.cc')
-rw-r--r--libjava/jni.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/libjava/jni.cc b/libjava/jni.cc
index fd82706..5a93753 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -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;