OSDN Git Service

Remove floatformat_arm_ext.
[pf3gnuchains/gcc-fork.git] / libjava / gcj / field.h
index 5d2203e..9279c83 100644 (file)
@@ -1,6 +1,6 @@
 // field.h - Header file for fieldID instances.  -*- c++ -*-
 
-/* Copyright (C) 1998, 1999, 2000  Red Hat, Inc.
+/* Copyright (C) 1998, 1999, 2000  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -13,6 +13,8 @@ details.  */
 
 #include <java/lang/Class.h>
 #include <java/lang/reflect/Field.h>
+#include <java/lang/reflect/Modifier.h>
+#include <gnu/gcj/RawData.h>
 
 #define _Jv_FIELD_UNRESOLVED_FLAG      0x8000
 #define        _Jv_FIELD_CONSTANT_VALUE        0x4000
@@ -68,12 +70,17 @@ struct _Jv_Field
 
   jclass getClass ()
   {
-    JvAssert (isResolved ());
+    // We can't use JvAssert here because it is not in a public
+    // header.
+    // JvAssert (isResolved ());
     return type;
   }
 
-  // FIXME - may need to mask off internal flags.
-  int getModifiers() { return flags; }
+  // Need to mask off all unknown/internal flags before returning.
+  int getModifiers()
+  {
+    return flags & java::lang::reflect::Modifier::ALL_FLAGS;
+  }
 
 #ifdef COMPACT_FIELDS
   _Jv_Utf8Const * getNameUtf8Const (jclass cls)
@@ -173,7 +180,7 @@ JvNumStaticFields (jclass klass)
 extern inline jboolean
 JvFieldIsRef (jfieldID field)
 {
-  return field->isRef ();
+  return field->isRef () && field->type != &gnu::gcj::RawData::class$;
 }
 
 extern inline jobject