* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 May 2000 04:46:26 +0000 (04:46 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 May 2000 04:46:26 +0000 (04:46 +0000)
field.
* boehm.cc (_Jv_MarkObj): Removed dead code.  Use `STATIC', not
`0x0008'.
Include Modifier.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33702 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/boehm.cc
libjava/gcj/field.h

index c3c16e3..45bea02 100644 (file)
@@ -1,3 +1,11 @@
+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>
 
        * java/lang/natClass.cc (isInstance): Use __builtin_expect.
index 62b9a86..34e9510 100644 (file)
@@ -16,6 +16,7 @@ details.  */
 #include <gcj/cni.h>
 
 #include <java/lang/Class.h>
+#include <java/lang/reflect/Modifier.h>
 #include <java-interp.h>
 
 // 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*/)
     {
       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;
       MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c3label);
       p = (ptr_t) c->superclass;
@@ -182,7 +175,7 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /*env*/)
 
          // For the interpreter, we also need to mark the memory
          // containing static members
-         if (field->flags & 0x0008)
+         if ((field->flags & java::lang::reflect::Modifier::STATIC))
            {
              p = (ptr_t) field->u.addr;
              MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8clabel);
index 62663d6..4413fa3 100644 (file)
@@ -175,7 +175,9 @@ JvNumStaticFields (jclass klass)
 extern inline jboolean
 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