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  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to