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:
authorBernhard Urban <bernhard.urban@xamarin.com>2017-02-27 19:55:53 +0300
committerBernhard Urban <bernhard.urban@xamarin.com>2017-03-01 00:59:28 +0300
commit5b30a1580604af5640f9e431410d6f284008d66a (patch)
tree47e75e9ebf89e9174e9f5cd85d9efbc0139d8954
parent550d7b00957b2e0695cc2b018237936e25db24ad (diff)
[interpreter] allow generic inst type in icall trampoline
-rw-r--r--mono/mini/generics.cs3
-rw-r--r--mono/mini/interpreter/interp.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/mono/mini/generics.cs b/mono/mini/generics.cs
index eae71e11f54..5b7618a9d50 100644
--- a/mono/mini/generics.cs
+++ b/mono/mini/generics.cs
@@ -462,7 +462,6 @@ class Tests
}
#endif
- [Category ("!INTERPRETER")]
public static int test_0_ldvirtftn_generic_method () {
new GenericsTests ().ldvirtftn<string> ();
@@ -489,7 +488,6 @@ class Tests
// This cannot be made to work with full-aot, since there it is impossible to
// statically determine that Foo<string>.Bar <int> is needed, the code only
// references IFoo.Bar<int>
- [Category ("!INTERPRETER")]
[Category ("!FULLAOT")]
public static int test_0_generic_virtual_on_interfaces () {
Foo<string>.count1 = 0;
@@ -515,7 +513,6 @@ class Tests
return 0;
}
- [Category ("!INTERPRETER")]
public static int test_0_generic_virtual_on_interfaces_ref () {
Foo<string>.count1 = 0;
Foo<string>.count2 = 0;
diff --git a/mono/mini/interpreter/interp.c b/mono/mini/interpreter/interp.c
index eee3a042a37..8bc422c7e0e 100644
--- a/mono/mini/interpreter/interp.c
+++ b/mono/mini/interpreter/interp.c
@@ -761,6 +761,7 @@ static MethodArguments* build_args_from_sig (MonoMethodSignature *sig, MonoInvoc
case MONO_TYPE_STRING:
case MONO_TYPE_I8:
case MONO_TYPE_VALUETYPE:
+ case MONO_TYPE_GENERICINST:
margs->ilen++;
break;
default:
@@ -805,6 +806,7 @@ static MethodArguments* build_args_from_sig (MonoMethodSignature *sig, MonoInvoc
case MONO_TYPE_STRING:
case MONO_TYPE_I8:
case MONO_TYPE_VALUETYPE:
+ case MONO_TYPE_GENERICINST:
margs->iargs [int_i] = frame->stack_args [i].data.p;
#if DEBUG_INTERP
g_print ("build_args_from_sig: margs->iargs[%d]: %p (frame @ %d)\n", int_i, margs->iargs[int_i], i);