* class.c: recursively check parent's explicit implementations
of interface methods (fixes bug #79125).
svn path=/trunk/mono/; revision=64181
+
+Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+ * class.c: recursively check parent's explicit implementations
+ of interface methods (fixes bug #79125).
+
2006-08-19 Miguel de Icaza <miguel@novell.com>
* filewatcher.c: Avoid warnings when building, do not redefine
*/
if (!(vtable [io + l])) {
MonoClass *parent = class->parent;
-
- if ((ic->interface_id <= parent->max_interface_id) &&
- (parent->interface_offsets [ic->interface_id] != -1) &&
- parent->vtable)
- vtable [io + l] = parent->vtable [parent->interface_offsets [ic->interface_id] + l];
+
+ for (; parent; parent = parent->parent) {
+ if ((ic->interface_id <= parent->max_interface_id) &&
+ (parent->interface_offsets [ic->interface_id] != -1) &&
+ parent->vtable) {
+ vtable [io + l] = parent->vtable [parent->interface_offsets [ic->interface_id] + l];
+ }
+ }
}
if (!(vtable [io + l])) {