Fix arg array builder from interpreter for wides.

Change-Id: I702bdf8d54d04198bc1972d05738ae9581253a00
diff --git a/src/invoke_arg_array_builder.h b/src/invoke_arg_array_builder.h
index 0664ef8..5d4fa5a 100644
--- a/src/invoke_arg_array_builder.h
+++ b/src/invoke_arg_array_builder.h
@@ -130,32 +130,32 @@
     for (size_t i = 1, offset = 0; i < shorty_len_; ++i, ++offset) {
       switch (shorty_[i]) {
         case 'Z':
-          arg_array_[offset].SetZ(shadow_frame.GetVReg(range_start + offset));
+          arg_array_[i - 1].SetZ(shadow_frame.GetVReg(range_start + offset));
           break;
         case 'B':
-          arg_array_[offset].SetB(shadow_frame.GetVReg(range_start + offset));
+          arg_array_[i - 1].SetB(shadow_frame.GetVReg(range_start + offset));
           break;
         case 'C':
-          arg_array_[offset].SetC(shadow_frame.GetVReg(range_start + offset));
+          arg_array_[i - 1].SetC(shadow_frame.GetVReg(range_start + offset));
           break;
         case 'S':
-          arg_array_[offset].SetS(shadow_frame.GetVReg(range_start + offset));
+          arg_array_[i - 1].SetS(shadow_frame.GetVReg(range_start + offset));
           break;
         case 'I':
-          arg_array_[offset].SetI(shadow_frame.GetVReg(range_start + offset));
+          arg_array_[i - 1].SetI(shadow_frame.GetVReg(range_start + offset));
           break;
         case 'F':
-          arg_array_[offset].SetF(shadow_frame.GetVRegFloat(range_start + offset));
+          arg_array_[i - 1].SetF(shadow_frame.GetVRegFloat(range_start + offset));
           break;
         case 'L':
-          arg_array_[offset].SetL(shadow_frame.GetReference(range_start + offset));
+          arg_array_[i - 1].SetL(shadow_frame.GetReference(range_start + offset));
           break;
         case 'D':
-          arg_array_[offset].SetD(shadow_frame.GetVRegDouble(range_start + offset));
+          arg_array_[i - 1].SetD(shadow_frame.GetVRegDouble(range_start + offset));
           offset++;
           break;
         case 'J':
-          arg_array_[offset].SetJ(shadow_frame.GetVRegLong(range_start + offset));
+          arg_array_[i - 1].SetJ(shadow_frame.GetVRegLong(range_start + offset));
           offset++;
           break;
       }
@@ -167,32 +167,32 @@
     for (size_t i = 1, offset = 0; i < shorty_len_; ++i, ++offset) {
       switch (shorty_[i]) {
         case 'Z':
-          arg_array_[offset].SetZ(shadow_frame.GetVReg(arg_regs[offset]));
+          arg_array_[i - 1].SetZ(shadow_frame.GetVReg(arg_regs[offset]));
           break;
         case 'B':
-          arg_array_[offset].SetB(shadow_frame.GetVReg(arg_regs[offset]));
+          arg_array_[i - 1].SetB(shadow_frame.GetVReg(arg_regs[offset]));
           break;
         case 'C':
-          arg_array_[offset].SetC(shadow_frame.GetVReg(arg_regs[offset]));
+          arg_array_[i - 1].SetC(shadow_frame.GetVReg(arg_regs[offset]));
           break;
         case 'S':
-          arg_array_[offset].SetS(shadow_frame.GetVReg(arg_regs[offset]));
+          arg_array_[i - 1].SetS(shadow_frame.GetVReg(arg_regs[offset]));
           break;
         case 'I':
-          arg_array_[offset].SetI(shadow_frame.GetVReg(arg_regs[offset]));
+          arg_array_[i - 1].SetI(shadow_frame.GetVReg(arg_regs[offset]));
           break;
         case 'F':
-          arg_array_[offset].SetF(shadow_frame.GetVRegFloat(arg_regs[offset]));
+          arg_array_[i - 1].SetF(shadow_frame.GetVRegFloat(arg_regs[offset]));
           break;
         case 'L':
-          arg_array_[offset].SetL(shadow_frame.GetReference(arg_regs[offset]));
+          arg_array_[i - 1].SetL(shadow_frame.GetReference(arg_regs[offset]));
           break;
         case 'D':
-          arg_array_[offset].SetD(shadow_frame.GetVRegDouble(arg_regs[offset]));
+          arg_array_[i - 1].SetD(shadow_frame.GetVRegDouble(arg_regs[offset]));
           offset++;
           break;
         case 'J':
-          arg_array_[offset].SetJ(shadow_frame.GetVRegLong(arg_regs[offset]));
+          arg_array_[i - 1].SetJ(shadow_frame.GetVRegLong(arg_regs[offset]));
           offset++;
           break;
       }