From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26443 invoked by alias); 8 Mar 2006 19:27:35 -0000 Received: (qmail 26415 invoked by uid 48); 8 Mar 2006 19:27:35 -0000 Date: Wed, 08 Mar 2006 19:27:00 -0000 Message-ID: <20060308192735.26414.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libgcj/18266] SIGSEGV in GC_register_finalizer_inner () In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: java-prs@gcc.gnu.org From: "tromey at gcc dot gnu dot org" 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 X-SW-Source: 2006-q1/txt/msg00348.txt.bz2 List-Id: ------- Comment #14 from tromey at gcc dot gnu dot org 2006-03-08 19:27 ------- I've been looking into this a bit. The current problem I see is that the heavyweight lock stuff relies on the GC. This won't interact well with the current code in natReference.cc, as those data structures are not scanned. Also, I do think that both calls to _Jv_RegisterFinalizer in Reference::create are problematic. The first call registers a finalizer for the Reference, the second for the referent. But, there is nothing preventing a subclass of Reference from having a finalizer; or from user code acquiring a heavy lock on a Reference object. So, all cases have to be handled here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18266