mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-29 23:04:12 +08:00
boehm.cc (_Jv_MarkObj): Don't follow null pointer to static field...
* boehm.cc (_Jv_MarkObj): Don't follow null pointer to static field, which can happen if class is JV_STATE_LOADED but not JV_STATE_PREPARED. From-SVN: r97128
This commit is contained in:
parent
8abb6b2217
commit
551ca039ec
@ -1,3 +1,8 @@
|
||||
2005-03-28 Per Bothner <per@bothner.com>
|
||||
|
||||
* boehm.cc (_Jv_MarkObj): Don't follow null pointer to static field,
|
||||
which can happen if class is JV_STATE_LOADED but not JV_STATE_PREPARED.
|
||||
|
||||
2005-03-27 Andreas Tobler <a.tobler@schweiz.ch>
|
||||
|
||||
* Makefile.am (classes.stamp): Add gnu/gcj/tools/gcj_dbtool/Main.java
|
||||
|
@ -189,9 +189,11 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void *env)
|
||||
// mark also the value pointed to. We check for isResolved
|
||||
// since marking can happen before memory is allocated for
|
||||
// static members.
|
||||
if (JvFieldIsRef (field) && field->isResolved())
|
||||
// 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())
|
||||
{
|
||||
jobject val = *(jobject*) field->u.addr;
|
||||
jobject val = *(jobject*) p;
|
||||
p = (GC_PTR) val;
|
||||
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user