Skip to content

Commit

Permalink
2002-08-23 Martin Baulig <martin@gnome.org>
Browse files Browse the repository at this point in the history
	* struct.cs (MyStructInfo.ctor): Make this work with empty
	structs; it's not allowed to use foreach() on null.

svn path=/trunk/mcs/; revision=6966
  • Loading branch information
Martin Baulig committed Aug 23, 2002
1 parent f991383 commit 709db5d
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 14 deletions.
5 changes: 5 additions & 0 deletions mcs/mcs/ChangeLog
@@ -1,3 +1,8 @@
2002-08-23 Martin Baulig <martin@gnome.org>

* struct.cs (MyStructInfo.ctor): Make this work with empty
structs; it's not allowed to use foreach() on null.

2002-08-23 Martin Baulig <martin@gnome.org>

* codegen.cs (CodeGen.InitMonoSymbolWriter): Tell the symbol
Expand Down
34 changes: 20 additions & 14 deletions mcs/mcs/statement.cs
Expand Up @@ -2105,27 +2105,33 @@ private MyStructInfo (Type type)
TypeContainer tc = TypeManager.LookupTypeContainer (type);

ArrayList fields = tc.Fields;
foreach (Field field in fields) {
if ((field.ModFlags & Modifiers.STATIC) != 0)
continue;
if ((field.ModFlags & Modifiers.PUBLIC) != 0)
++Count;
else
++CountNonPublic;
if (fields != null) {
foreach (Field field in fields) {
if ((field.ModFlags & Modifiers.STATIC) != 0)
continue;
if ((field.ModFlags & Modifiers.PUBLIC) != 0)
++Count;
else
++CountNonPublic;
}
}

Fields = new FieldInfo [Count];
NonPublicFields = new FieldInfo [CountNonPublic];

Count = CountNonPublic = 0;
foreach (Field field in fields) {
if ((field.ModFlags & Modifiers.STATIC) != 0)
continue;
if ((field.ModFlags & Modifiers.PUBLIC) != 0)
Fields [Count++] = field.FieldBuilder;
else
NonPublicFields [CountNonPublic++] = field.FieldBuilder;
if (fields != null) {
foreach (Field field in fields) {
if ((field.ModFlags & Modifiers.STATIC) != 0)
continue;
if ((field.ModFlags & Modifiers.PUBLIC) != 0)
Fields [Count++] = field.FieldBuilder;
else
NonPublicFields [CountNonPublic++] =
field.FieldBuilder;
}
}

} else {
Fields = type.GetFields (BindingFlags.Instance|BindingFlags.Public);
Count = Fields.Length;
Expand Down

0 comments on commit 709db5d

Please sign in to comment.