[Mono-bugs] [Bug 60086][Nor] New - MethodAttributes differences (and weirdness)

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Sat, 12 Jun 2004 04:53:09 -0400 (EDT)


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 gert.driesen@pandora.be.

http://bugzilla.ximian.com/show_bug.cgi?id=60086

--- shadow/60086	2004-06-12 04:53:09.000000000 -0400
+++ shadow/60086.tmp.19327	2004-06-12 04:53:09.000000000 -0400
@@ -0,0 +1,55 @@
+Bug#: 60086
+Product: Mono: Runtime
+Version: unspecified
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: gert.driesen@pandora.be               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: MethodAttributes differences (and weirdness)
+
+Apparently there's a difference between Mono and MS.NET with regards to 
+MethodAttributes.
+
+For example, when you retrieve the MethodAttributes of all public methods 
+on MulticastDelegate, you get the following results on MS.NET :
+
+Type: System.MulticastDelegate
+GetObjectData: PrivateScope, Public, Virtual, HideBySig
+GetInvocationList: PrivateScope, Public, Final, Virtual, HideBySig
+GetHashCode: PrivateScope, Public, Final, Virtual, HideBySig
+Equals: PrivateScope, Public, Final, Virtual, HideBySig
+op_Equality: PrivateScope, Public, Static, HideBySig, SpecialName
+op_Inequality: PrivateScope, Public, Static, HideBySig, SpecialName
+
+While on Mono you get :
+
+Type: System.MulticastDelegate
+GetObjectData: ReuseSlot, Public, Virtual, HideBySig
+Equals: ReuseSlot, Public, Virtual, HideBySig
+GetHashCode: ReuseSlot, Public, Virtual, HideBySig
+GetInvocationList: ReuseSlot, Public, Virtual, HideBySig
+op_Equality: ReuseSlot, Public, Static, HideBySig, SpecialName
+op_Inequality: ReuseSlot, Public, Static, HideBySig, SpecialName
+
+I attached a small test app.
+
+Another weirdness is that if you build that same test application using 
+mcs, and run it on Mono, you no longer get the enum field names, but 
+instead the enum value is output :
+
+Type: System.MulticastDelegate
+GetObjectData: 198
+GetInvocationList: 230
+GetHashCode: 230
+Equals: 230
+op_Equality: 2198
+op_Inequality: 2198