diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-24 22:14:03 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-24 22:14:03 +0000 |
commit | f17c1d00667e1ba9c80876a618ab047076e13db7 (patch) | |
tree | 3ede541d377cde098b4cb76833fb3df33e0a0cea /libjava/boehm.cc | |
parent | a7d9c7d6bb3edfbe7a99dcb1cb0c510b10054f3a (diff) | |
download | gcc-f17c1d00667e1ba9c80876a618ab047076e13db7.tar.gz |
* boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101300 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/boehm.cc')
-rw-r--r-- | libjava/boehm.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libjava/boehm.cc b/libjava/boehm.cc index af26c2b7b36..06b8f9889e8 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; |