From 7b0b8011b1ab97216b40efa30f8efc8a51a565bb Mon Sep 17 00:00:00 2001 From: Rodrigo Kumpera Date: Thu, 2 May 2013 06:59:26 -0400 Subject: [PATCH] Don't try to merge interfaces between to non-interface types. Fixes #10392. MCS used to emit code that would merge two stacks only by one of the interfaces that two concrete types have. This is not the behavior on either the SPEC or the MS implementation. It's not a great one as the selected interface is non-deterministic, while the a parent is. --- mono/metadata/verify.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/mono/metadata/verify.c b/mono/metadata/verify.c index a7f92a97090..756bf491187 100644 --- a/mono/metadata/verify.c +++ b/mono/metadata/verify.c @@ -4593,15 +4593,6 @@ merge_stacks (VerifyContext *ctx, ILCodeDesc *from, ILCodeDesc *to, gboolean sta goto end_verify; } - for (j = 0; j < old_class->interface_count; ++j) { - for (k = 0; k < new_class->interface_count; ++k) { - if (mono_metadata_type_equal (&old_class->interfaces [j]->byval_arg, &new_class->interfaces [k]->byval_arg)) { - match_class = old_class->interfaces [j]; - goto match_found; - } - } - } - /* if old class is an interface that new class implements */ if (old_class->flags & TYPE_ATTRIBUTE_INTERFACE) { if (verifier_class_is_assignable_from (old_class, new_class)) { -- 2.11.4.GIT