From 84973b27e8283fa75075f124ad4e6e14dc7726a4 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 14 Jan 2005 07:36:27 +0000 Subject: jni.h (_Jv_JNIEnv::bottom_locals): New field. 2005-01-13 Graydon Hoare * 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. From-SVN: r93632 --- libjava/include/jni.h | 4 ++++ libjava/include/jvm.h | 3 +++ 2 files changed, 7 insertions(+) (limited to 'libjava/include') diff --git a/libjava/include/jni.h b/libjava/include/jni.h index acffa97..c1b6e20 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 d45ef25..67a4b18 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 (); -- cgit v1.1