aboutsummaryrefslogtreecommitdiff
path: root/libjava/include/java-field.h
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include/java-field.h')
-rw-r--r--libjava/include/java-field.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/libjava/include/java-field.h b/libjava/include/java-field.h
index b4529fc..d00d9ce 100644
--- a/libjava/include/java-field.h
+++ b/libjava/include/java-field.h
@@ -53,7 +53,18 @@ struct _Jv_Field
jfieldID getNextInstanceField () { return this + 1; }
- jboolean isRef () { return ! isResolved () || ! type->isPrimitive (); }
+ jboolean isRef ()
+ {
+ if (!isResolved ())
+ {
+ char first = ((_Jv_Utf8Const*)type)->data[0];
+ return first == '[' || first == 'L';
+ }
+ else
+ {
+ return ! type->isPrimitive ();
+ }
+ }
// FIXME - may need to mask off internal flags.
int getModifiers() { return flags; }