Commit a52dee2f by Tom Tromey Committed by Tom Tromey

field.h (JvFieldIsRef): Return false for gnu.gcj.RawData field.

	* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
	field.
	* boehm.cc (_Jv_MarkObj): Removed dead code.  Use `STATIC', not
	`0x0008'.
	Include Modifier.h.

From-SVN: r33702
parent 652f2504
2000-05-04 Tom Tromey <tromey@cygnus.com>
* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
field.
* boehm.cc (_Jv_MarkObj): Removed dead code. Use `STATIC', not
`0x0008'.
Include Modifier.h.
2000-05-05 Bryce McKinlay <bryce@albatross.co.nz> 2000-05-05 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natClass.cc (isInstance): Use __builtin_expect. * java/lang/natClass.cc (isInstance): Use __builtin_expect.
......
...@@ -16,6 +16,7 @@ details. */ ...@@ -16,6 +16,7 @@ details. */
#include <gcj/cni.h> #include <gcj/cni.h>
#include <java/lang/Class.h> #include <java/lang/Class.h>
#include <java/lang/reflect/Modifier.h>
#include <java-interp.h> #include <java-interp.h>
// More nastiness: the GC wants to define TRUE and FALSE. We don't // More nastiness: the GC wants to define TRUE and FALSE. We don't
...@@ -102,14 +103,6 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/) ...@@ -102,14 +103,6 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/)
{ {
jclass c = (jclass) addr; jclass c = (jclass) addr;
#if 0
// The next field should probably not be marked, since this is
// only used in the class hash table. Marking this field
// basically prohibits class unloading. --Kresten
p = (ptr_t) c->next;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c2label);
#endif
p = (ptr_t) c->name; p = (ptr_t) c->name;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c3label); MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c3label);
p = (ptr_t) c->superclass; p = (ptr_t) c->superclass;
...@@ -182,7 +175,7 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/) ...@@ -182,7 +175,7 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/)
// For the interpreter, we also need to mark the memory // For the interpreter, we also need to mark the memory
// containing static members // containing static members
if (field->flags & 0x0008) if ((field->flags & java::lang::reflect::Modifier::STATIC))
{ {
p = (ptr_t) field->u.addr; p = (ptr_t) field->u.addr;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8clabel); MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8clabel);
......
...@@ -175,7 +175,9 @@ JvNumStaticFields (jclass klass) ...@@ -175,7 +175,9 @@ JvNumStaticFields (jclass klass)
extern inline jboolean extern inline jboolean
JvFieldIsRef (jfieldID field) JvFieldIsRef (jfieldID field)
{ {
return field->isRef (); // gnu.gcj.RawData.class is _CL_Q33gnu3gcj7RawData
extern java::lang::Class _CL_Q33gnu3gcj7RawData;
return field->isRef () && field->type != &_CL_Q33gnu3gcj7RawData;
} }
extern inline jobject extern inline jobject
......
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