[Mono-bugs] [Bug 72544][Wis] Changed - mcs crashes with Mono.CSharp.InternalErrorException
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Sat, 12 Feb 2005 22:52:54 -0500 (EST)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by miguel@ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=72544
--- shadow/72544 2005-02-12 20:33:19.000000000 -0500
+++ shadow/72544.tmp.20890 2005-02-12 22:52:54.000000000 -0500
@@ -1,14 +1,14 @@
Bug#: 72544
Product: Mono: Compilers
Version: 1.1
-OS:
+OS: unknown
OS Details: ubuntu/ppc hoary
Status: NEW
Resolution:
-Severity:
+Severity: Unknown
Priority: Wishlist
Component: C#
AssignedTo: mono-bugs@ximian.com
ReportedBy: grompf@sublimeintervention.com
QAContact: mono-bugs@ximian.com
TargetMilestone: ---
@@ -28,6 +28,32 @@
IntPtr g;
Blah (out g);
return (int) g;
}
}
+
+------- Additional Comments From miguel@ximian.com 2005-02-12 22:52 -------
+This is crashing because of revision 40402:
+
+ Fix #52586, cs0121-4.cs.
+ * decl.cs (MemberCache.DeepCopy): Rename from SetupCache. Take
+ and return a hashtable.
+ (MemberCache.ClearDeclaredOnly): New.
+ (MemberCache.MemberCache): Update to change. Make a deep copy of
+ the method_hash of a base type too.
+ (MemberCache.AddMethods): Adapt to having a deep copy of the base
+ type methods. Overwrite entries with the same MethodHandle so
+ that the ReflectedType is correct. The process leaves in base
+ virtual functions and their overrides as distinct entries.
+ (CacheEntry): Now a class instead of a struct. It shouldn't alter
+ matters since it was boxed in a ArrayList before.
+ (CacheEntry.Member, CacheEntry.EntryType): Remove 'readonly'
+ modifier.
+ * expression.cs (Invocation.BetterFunction): Simplify. Handle the
+ case of a virtual function and its override (choose the overload
+ as better).
+ (Invocation.OverloadResolve): Avoid 'override' members during
+ 'applicable_type' calculation.
+
+The code is buggy, but we should flag the error, and not crash.
+