diff options
Diffstat (limited to 'libjava/include/java-field.h')
-rw-r--r-- | libjava/include/java-field.h | 13 |
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; } |