FieldInfo[] GetFieldsInternal (BindingFlags bf, MonoGenericClass reftype)
{
FieldInfo[] fields = GetFieldsFromGTD (bf);
if (fields.Length == 0)
return new FieldInfo [0];
ArrayList l = new ArrayList ();
bool match;
FieldAttributes fattrs;
initialize ();
for (int i = 0; i < fields.Length; i++) {
FieldInfo c = fields [i];
match = false;
fattrs = c.Attributes;
if ((fattrs & FieldAttributes.FieldAccessMask) == FieldAttributes.Public) {
if ((bf & BindingFlags.Public) != 0)
match = true;
} else {
if ((bf & BindingFlags.NonPublic) != 0)
match = true;
}
if (!match)
continue;
match = false;
if ((fattrs & FieldAttributes.Static) != 0) {
if ((bf & BindingFlags.Static) != 0)
match = true;
} else {
if ((bf & BindingFlags.Instance) != 0)
match = true;
}
if (!match)
continue;
l.Add (TypeBuilder.GetField (this, c));
}
FieldInfo[] result = new FieldInfo [l.Count];
l.CopyTo (result);
return result;
}