Author: zoltan
Date: 2008-02-19 14:56:34 -0500 (Tue, 19 Feb 2008)
New Revision: 96178
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/class.c
Log:
2008-02-19 Zoltan Varga <[EMAIL PROTECTED]>
* class.c (mono_class_setup_vtable_general): Ignore static methods in
interfaces.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2008-02-19 19:55:40 UTC (rev 96177)
+++ trunk/mono/mono/metadata/ChangeLog 2008-02-19 19:56:34 UTC (rev 96178)
@@ -1,3 +1,7 @@
+2008-02-19 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * class.c (mono_class_setup_vtable_general): Ignore static methods in
interfaces.
+
2008-02-18 Rodrigo Kumpera <[EMAIL PROTECTED]>
* verify.c: Implement skip visibility flag.
Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c 2008-02-19 19:55:40 UTC (rev 96177)
+++ trunk/mono/mono/metadata/class.c 2008-02-19 19:56:34 UTC (rev 96178)
@@ -2657,6 +2657,9 @@
int im_slot = ic_offset + im->slot;
MonoMethod *override_im = (override_map !=
NULL) ? g_hash_table_lookup (override_map, im) : NULL;
+ if (im->flags & METHOD_ATTRIBUTE_STATIC)
+ continue;
+
// If there is an explicit implementation, just
use it right away,
// otherwise look for a matching method
if (override_im == NULL) {
@@ -2721,6 +2724,9 @@
MonoMethod *im = ic->methods [im_index];
int im_slot = ic_offset + im->slot;
+ if (im->flags & METHOD_ATTRIBUTE_STATIC)
+ continue;
+
TRACE_INTERFACE_VTABLE (printf ("
[class is not abstract, checking slot %d for interface '%s'.'%s', method %s,
slot check is %d]\n",
im_slot,
ic->name_space, ic->name, im->name, (vtable [im_slot] == NULL)));
if (vtable [im_slot] == NULL) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches