[interpreter] pop from value type stack when loading field from value type
authorBernhard Urban <bernhard.urban@xamarin.com>
Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)
committerBernhard Urban <bernhard.urban@xamarin.com>
Thu, 16 Feb 2017 22:09:38 +0000 (23:09 +0100)
mono/mini/interpreter/transform.c

index 00c44dad41b9313633248a53ea50b34cbd4177c0..b7c407ae50d1ec886b5e9a569c725790e5a11e4e 100644 (file)
@@ -1963,6 +1963,9 @@ generate (MonoMethod *method, RuntimeMethod *rtm, unsigned char *is_bb_start)
                                int size = mono_class_value_size (klass, NULL);
                                size = (size + 7) & ~7;
                                td.vt_sp -= size;
+                               ADD_CODE (&td, MINT_VTRESULT);
+                               ADD_CODE (&td, 0);
+                               WRITE32 (&td, &size);
                        }
                        td.ip += 5;
                        SET_TYPE(td.sp - 1, stack_type [mt], field_klass);