Fix interpreter bugs.
These showed up in compaction work.
Change-Id: Iac8eb0a1395c25aabba9f2e0ff6b01fc6180bdca
diff --git a/runtime/interpreter/interpreter_switch_impl.cc b/runtime/interpreter/interpreter_switch_impl.cc
index c3977c6..bd0d87e 100644
--- a/runtime/interpreter/interpreter_switch_impl.cc
+++ b/runtime/interpreter/interpreter_switch_impl.cc
@@ -227,12 +227,12 @@
case Instruction::RETURN_OBJECT: {
PREAMBLE();
JValue result;
- Object* obj_result = shadow_frame.GetVRegReference(inst->VRegA_11x(inst_data));
- result.SetJ(0);
- result.SetL(obj_result);
if (UNLIKELY(self->TestAllFlags())) {
CheckSuspend(self);
}
+ Object* obj_result = shadow_frame.GetVRegReference(inst->VRegA_11x(inst_data));
+ result.SetJ(0);
+ result.SetL(obj_result);
if (do_assignability_check && obj_result != NULL) {
Class* return_type = MethodHelper(shadow_frame.GetMethod()).GetReturnType();
if (return_type == NULL) {