aboutsummaryrefslogtreecommitdiff
path: root/libjava/gcj/field.h
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gcj/field.h')
-rw-r--r--libjava/gcj/field.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/libjava/gcj/field.h b/libjava/gcj/field.h
index 219da9e..28006fc 100644
--- a/libjava/gcj/field.h
+++ b/libjava/gcj/field.h
@@ -1,6 +1,6 @@
// field.h - Header file for fieldID instances. -*- c++ -*-
-/* Copyright (C) 1998, 1999 Red Hat, Inc.
+/* Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
This file is part of libgcj.
@@ -30,7 +30,7 @@ struct _Jv_Field
_Jv_ushort flags;
#ifdef COMPACT_FIELDS
- short nameIndex; /* ofsfet in class's name table */
+ short nameIndex; /* offset in class's name table */
#else
_Jv_ushort bsize; /* not really needed ... */
#endif
@@ -51,7 +51,7 @@ struct _Jv_Field
jobject getObjectField (jobject obj)
{ return *(jobject *)((char *)obj + getOffset ()); }
- jfieldID getNextInstanceField () { return this + 1; }
+ jfieldID getNextField () { return this + 1; }
jboolean isRef ()
{
@@ -66,6 +66,12 @@ struct _Jv_Field
}
}
+ jclass getClass ()
+ {
+ JvAssert (isResolved ());
+ return type;
+ }
+
// FIXME - may need to mask off internal flags.
int getModifiers() { return flags; }
@@ -79,6 +85,7 @@ struct _Jv_Field
};
#ifdef __cplusplus
+
inline jbyte
_Jv_GetStaticByteField (jclass, _Jv_Field* field)
{
@@ -151,6 +158,18 @@ JvNumInstanceFields (jclass klass)
return klass->field_count - klass->static_field_count;
}
+extern inline jfieldID
+JvGetFirstStaticField (jclass klass)
+{
+ return &(klass->fields[0]);
+}
+
+extern inline jint
+JvNumStaticFields (jclass klass)
+{
+ return klass->static_field_count;
+}
+
extern inline jboolean
JvFieldIsRef (jfieldID field)
{
@@ -164,6 +183,6 @@ JvGetObjectField (jobject obj, _Jv_Field* field)
}
#endif /* defined (__GCJ_CNI_H__) */
-#endif
+#endif /* __cplusplus */
#endif /* __GCJ_FIELD_H */