* boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL.

From-SVN: r101300
This commit is contained in:
Tom Tromey 2005-06-24 22:14:03 +00:00 committed by Tom Tromey
parent aca02b7e00
commit b7938f087d
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2005-06-24 Tom Tromey <tromey@redhat.com>
* boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL.
2005-06-24 Tom Tromey <tromey@redhat.com>
* verify.cc (verify_instructions_0): Correctly handle situation

View File

@ -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;