From 7187145098d7570158eabbf84aa71dc5ab61b3b7 Mon Sep 17 00:00:00 2001 From: Aleksey Kliger Date: Mon, 22 Aug 2022 16:11:06 -0400 Subject: [PATCH] do we need to inflate here? it seems like we always get the right class --- src/mono/mono/metadata/class-setup-vtable.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mono/mono/metadata/class-setup-vtable.c b/src/mono/mono/metadata/class-setup-vtable.c index 2c29e30d05a05..5ab2d554e351b 100644 --- a/src/mono/mono/metadata/class-setup-vtable.c +++ b/src/mono/mono/metadata/class-setup-vtable.c @@ -1025,12 +1025,14 @@ apply_override (MonoClass *klass, MonoClass *override_class, MonoMethod **vtable * This is needed so the mono_class_is_assignable_from_internal () calls in the * conflict resolution work. */ - if (mono_class_is_ginst (override_class)) { + g_assert (override_class == override->klass); + if (mono_class_is_ginst (override_class) && override->klass != override_class) { override = mono_class_inflate_generic_method_checked (override, &mono_class_get_generic_class (override_class)->context, error); mono_error_assert_ok (error); } - if (mono_class_is_ginst (prev_override_class)) { + g_assert (prev_override->klass == prev_override_class); + if (mono_class_is_ginst (prev_override_class) && prev_override->klass != prev_override_class) { prev_override = mono_class_inflate_generic_method_checked (prev_override, &mono_class_get_generic_class (prev_override_class)->context, error); mono_error_assert_ok (error); }