From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28586 invoked by alias); 12 Oct 2005 20:29:38 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 28566 invoked by uid 48); 12 Oct 2005 20:29:38 -0000 Date: Wed, 12 Oct 2005 20:29:00 -0000 Message-ID: <20051012202938.28565.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libgcj/13212] JNI/CNI AttachCurrentThread does not register thread with garbage collector In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: java-prs@gcc.gnu.org From: "stewart at neuron dot com" X-SW-Source: 2005-q4/txt/msg00073.txt.bz2 List-Id: ------- Comment #12 from stewart at neuron dot com 2005-10-12 20:29 ------- Tom, This patch from you against gcc-4.0.2 cured the segfault. Thanks, Stewart Index: jni.cc =================================================================== RCS file: /cvs/gcc/gcc/libjava/jni.cc,v retrieving revision 1.95.2.2 diff -u -r1.95.2.2 jni.cc --- jni.cc 6 Sep 2005 16:03:11 -0000 1.95.2.2 +++ jni.cc 12 Oct 2005 18:50:20 -0000 @@ -2341,10 +2341,14 @@ } // 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 (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; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13212