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
This commit is contained in:
Tom Tromey 2006-01-19 00:57:00 +00:00 committed by Tom Tromey
parent 5bf5a10b1c
commit ec5dd52b37
2 changed files with 13 additions and 4 deletions

View 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.

View 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;