[Mono-bugs] [Bug 74996][Blo] Changed - MI/ method lookup oddness ...

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed May 25 05:45:21 EDT 2005


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 michael at ximian.com.

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

--- shadow/74996	2005-05-20 11:55:09.000000000 -0400
+++ shadow/74996.tmp.24096	2005-05-25 05:45:21.000000000 -0400
@@ -191,6 +191,51 @@
 Ok, so apparently I need a fresher Mono to get Michael's error
 
 ------- Additional Comments From michael at ximian.com  2005-05-20 11:55 -------
 So - the actual error for me is on line 7797 of the output which
 should be ~7868 lines long or so; anything much shorter is a different
 problem I think.
+
+------- Additional Comments From michael at ximian.com  2005-05-25 05:45 -------
+So - tiring of waiting for people to try / work on my test case ;-)
+I thought I'd add some debug - I think this is the smoking gun; with
+the attached patch to metadata/object.c (mono_class_proxy_vtable) I get:
+
+Create trampolines for 'System.Object': 8 interfaces
+  examine 'XComponentContext': i/f id 34 i/f count 0
+    building trampolines for 'XComponentContext', 2 methods
+  examine 'XComponent': i/f id 40 i/f count 0
+    building trampolines for 'XComponent', 3 methods
+  examine 'XMultiComponentFactory': i/f id 41 i/f count 0
+    building trampolines for 'XMultiComponentFactory', 3 methods
+  examine 'XSet': i/f id 35 i/f count 1
+    building trampolines for 'XSet', 3 methods
+    building trampolines for 'XEnumerationAccess', 1 methods
+  examine 'XEventListener': i/f id 60 i/f count 0
+    building trampolines for 'XEventListener', 1 methods
+  examine 'XMain': i/f id 38 i/f count 0
+    building trampolines for 'XMain', 1 methods
+  examine 'XRecursiveCall': i/f id 45 i/f count 0
+    building trampolines for 'XRecursiveCall', 1 methods
+  examine 'XMulti': i/f id 50 i/f count 2
+    building trampolines for 'XMulti', 0 methods
+    building trampolines for 'XMultiBase6', 2 methods
+    building trampolines for 'XMultiBase7', 3 methods
+
+The signature for XMulti is:
+
+monop -r:cli_types_bridgetest.dll
+'unoidl.test.testtools.bridgetest.XMulti'
+public interface XMulti : XMultiBase1, XMultiBase2, XMultiBase3,
+XMultiBase3a, XMultiBase4, XMultiBase5, XMultiBase6, XMultiBase7 {
+}
+
+The IDL for it (from which the interface inheritance logic is
+compiled) is:
+
+interface XMulti {
+    interface XMultiBase6;
+    interface XMultiBase7;
+};
+
+so - it looks like we've not flattened the inheritance tree properly
+somehow.


More information about the mono-bugs mailing list