[interpreter] fix array built-ins wrt. multiarray access
authorBernhard Urban <bernhard.urban@xamarin.com>
Mon, 27 Feb 2017 16:55:54 +0000 (17:55 +0100)
committerBernhard Urban <bernhard.urban@xamarin.com>
Tue, 28 Feb 2017 21:59:28 +0000 (22:59 +0100)
mono/mini/interpreter/interp.c
mono/mini/objects.cs

index b1fe4c1584d47e8e9254cacfb9273eaea6367fe2..6693cbd6d312833e63288e4b4da315149bef4f5e 100644 (file)
@@ -553,7 +553,7 @@ ves_array_create (MonoDomain *domain, MonoClass *klass, MonoMethodSignature *sig
 static void 
 ves_array_set (MonoInvocation *frame)
 {
-       stackval *sp = frame->stack_args;
+       stackval *sp = frame->stack_args + 1;
        MonoObject *o;
        MonoArray *ao;
        MonoClass *ac;
@@ -607,7 +607,7 @@ ves_array_set (MonoInvocation *frame)
 static void 
 ves_array_get (MonoInvocation *frame)
 {
-       stackval *sp = frame->stack_args;
+       stackval *sp = frame->stack_args + 1;
        MonoObject *o;
        MonoArray *ao;
        MonoClass *ac;
@@ -651,7 +651,7 @@ ves_array_get (MonoInvocation *frame)
 static void
 ves_array_element_address (MonoInvocation *frame)
 {
-       stackval *sp = frame->stack_args;
+       stackval *sp = frame->stack_args + 1;
        MonoObject *o;
        MonoArray *ao;
        MonoClass *ac;
index 19219a45608b39ab8327c169851d3b48706c8c12..55e998d4e4dd12de276347a85b29a53072ad03e7 100644 (file)
@@ -623,7 +623,6 @@ class Tests {
                return 0;
        }
 
-       [Category ("!INTERPRETER")]
        public static int test_0_multi_array_cast () {
                Duper[,] d = new Duper [1, 1];
                object[,] o = d;
@@ -919,7 +918,6 @@ class Tests {
                return f ();
        }
 
-       [Category ("!INTERPRETER")]
        public static int test_1_store_decimal () {
                decimal[,] a = {{1}};
 
@@ -1438,7 +1436,6 @@ ncells ) {
                return 0;
        }
 
-       [Category ("!INTERPRETER")]
        static int test_0_array_get_set_soft_float () {
                float[,] arr = new float [2, 2];
                arr [0, 0] = 256f;