// 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.
#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
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)
extern inline jboolean
JvFieldIsRef (jfieldID field)
{
- return field->isRef ();
+ return field->isRef () && field->type != &gnu::gcj::RawData::class$;
}
extern inline jobject