Commit 7ea082bb by Tom Tromey Committed by Tom Tromey

boehm.cc (_Jv_MarkObj): Don't fail if class object has been allocated but not initialized.

	* boehm.cc (_Jv_MarkObj): Don't fail if class object has been
	allocated but not initialized.

From-SVN: r57514
parent 941b08f2
2002-09-25 Tom Tromey <tromey@redhat.com>
* boehm.cc (_Jv_MarkObj): Don't fail if class object has been
allocated but not initialized.
2002-09-25 Jesse Rosenstock <jmr@ugcs.caltech.edu>
Fix for PR libgcj/7766:
......
// boehm.cc - interface between libjava and Boehm GC.
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
This file is part of libgcj.
......@@ -134,6 +134,12 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /* env */)
p = (ptr_t) c->methods;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c6label);
// The vtable might have been set, but the rest of the class
// could still be uninitialized. If this is the case, then
// c.isArray will SEGV. We check for this, and if it is the
// case we just return.
if (__builtin_expect (c->name == NULL, false))
return mark_stack_ptr;
if (! c->isArray() && ! c->isPrimitive())
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment