Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2015-05-21 16:58:52 +0300
committerSebastien Pouliot <sebastien@xamarin.com>2015-07-29 21:21:32 +0300
commitd6946b42e4062ca521d45ecd26baebbaf19c64b6 (patch)
tree073132c37f34244f7e2bb01f701dd34ca3f07213
parente4f44c127ce6ca02c6ec70012f7218c5b3c816e7 (diff)
[runtime] Handle generic methods in mono_method_get_vtable_slot (). Fixes #30276.mono-4.0.3.20
-rw-r--r--mono/metadata/class.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mono/metadata/class.c b/mono/metadata/class.c
index 1296ed12123..f1f2e2156d9 100644
--- a/mono/metadata/class.c
+++ b/mono/metadata/class.c
@@ -4821,6 +4821,11 @@ mono_method_get_vtable_slot (MonoMethod *method)
MonoClass *gklass;
int i;
+ if (!method->klass->generic_class) {
+ g_assert (method->is_inflated);
+ return mono_method_get_vtable_slot (((MonoMethodInflated*)method)->declaring);
+ }
+
/* This can happen for abstract methods of generic instances due to the shortcut code in mono_class_setup_vtable_general (). */
g_assert (method->klass->generic_class);
gklass = method->klass->generic_class->container_class;