linamh/dev-lang/mono/files/mono-2.4-openoffice.patch
geos_one be5cae4b16 add new mono version
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1476 6952d904-891a-0410-993b-d76249ca496b
2009-08-22 00:44:22 +00:00

41 lines
925 B
Diff

--- trunk/mcs/mcs/class.cs 2009/04/28 17:00:23 132860
+++ trunk/mcs/mcs/class.cs 2009/04/28 17:02:37 132861
@@ -2905,6 +2905,9 @@
}
public sealed class Struct : ClassOrStruct {
+
+ bool is_unmanaged, has_unmanaged_check_done;
+
// <summary>
// Modifiers allowed in a struct declaration
// </summary>
@@ -2964,6 +2967,11 @@
if (requires_delayed_unmanagedtype_check)
return true;
+ if (has_unmanaged_check_done)
+ return is_unmanaged;
+
+ has_unmanaged_check_done = true;
+
foreach (FieldBase f in fields) {
if ((f.ModFlags & Modifiers.STATIC) != 0)
continue;
@@ -2972,6 +2980,7 @@
// struct S { S* s; }
Type mt = f.MemberType;
if (mt == null) {
+ has_unmanaged_check_done = false;
requires_delayed_unmanagedtype_check = true;
return true;
}
@@ -2988,6 +2997,7 @@
return false;
}
+ is_unmanaged = true;
return true;
}