From b7938f087dc0934e674e7cf7f6049145bd1a345d Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 24 Jun 2005 22:14:03 +0000 Subject: * boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL. From-SVN: r101300 --- libjava/ChangeLog | 4 ++++ libjava/boehm.cc | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index bcc1eab..5182066 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,9 @@ 2005-06-24 Tom Tromey + * boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL. + +2005-06-24 Tom Tromey + * verify.cc (verify_instructions_0): Correctly handle situation where PC falls off end. diff --git a/libjava/boehm.cc b/libjava/boehm.cc index af26c2b..06b8f98 100644 --- a/libjava/boehm.cc +++ b/libjava/boehm.cc @@ -1,6 +1,6 @@ // boehm.cc - interface between libjava and Boehm GC. -/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation This file is part of libgcj. @@ -191,7 +191,11 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void *env) // static members. // Note that field->u.addr may be null if the class c is // JV_STATE_LOADED but not JV_STATE_PREPARED (initialized). - if (JvFieldIsRef (field) && p && field->isResolved()) + // Note also that field->type could be NULL in some + // situations, for instance if the class has state + // JV_STATE_ERROR. + if (field->type && JvFieldIsRef (field) + && p && field->isResolved()) { jobject val = *(jobject*) p; p = (GC_PTR) val; -- cgit v1.1