summaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authorgraydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-14 07:36:27 +0000
committergraydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-14 07:36:27 +0000
commitf932adc1c137c00970a94d039adfdffaf0373222 (patch)
tree57a4dece632a26e9b5430fff053a24e1b01280d3 /libjava/include
parenta3715b0064fd8593f1898ae6adb7274522f1f5f5 (diff)
downloadgcc-f932adc1c137c00970a94d039adfdffaf0373222.tar.gz
2005-01-13 Graydon Hoare <graydon@redhat.com>
* include/jni.h (_Jv_JNIEnv::bottom_locals): New field. * include/jvm.h (_Jv_FreeJNIEnv): Declare. * java/lang/natThread.cc (finalize_native): Call _Jv_FreeJNIEnv. * jni.cc: Reuse bottom frame between calls, avoid clearing frame when no local references are made. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93632 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/jni.h4
-rw-r--r--libjava/include/jvm.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/libjava/include/jni.h b/libjava/include/jni.h
index acffa97fd98..c1b6e20b5ab 100644
--- a/libjava/include/jni.h
+++ b/libjava/include/jni.h
@@ -693,6 +693,10 @@ private:
/* The chain of local frames. */
struct _Jv_JNI_LocalFrame *locals;
+ /* The bottom-most element of the chain, initialized with the env and
+ reused between non-nesting JNI calls. */
+ struct _Jv_JNI_LocalFrame *bottom_locals;
+
public:
jint GetVersion ()
{ return p->GetVersion (this); }
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index d45ef25b699..67a4b18176e 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -522,6 +522,9 @@ extern void _Jv_JNI_Init (void);
_Jv_JNIEnv *_Jv_GetCurrentJNIEnv ();
void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
+/* Free a JNIEnv. */
+void _Jv_FreeJNIEnv (_Jv_JNIEnv *);
+
struct _Jv_JavaVM;
_Jv_JavaVM *_Jv_GetJavaVM ();