diff options
author | Jeff Hao <jeffhao@google.com> | 2015-04-29 15:58:17 -0700 |
---|---|---|
committer | Jeff Hao <jeffhao@google.com> | 2015-04-29 15:58:17 -0700 |
commit | 9651d9b4ce938e49788e83d38d410eccee54ac90 (patch) | |
tree | b1c05e7fa4ce6fb4787824b92da28ba2a3a6fc9d /runtime/interpreter | |
parent | 8c9c1ae515f32142ab85103c5d45bd7ce4e6eb3c (diff) | |
download | art-9651d9b4ce938e49788e83d38d410eccee54ac90.tar.gz art-9651d9b4ce938e49788e83d38d410eccee54ac90.tar.bz2 art-9651d9b4ce938e49788e83d38d410eccee54ac90.zip |
Restore interpreter check during DoCall removed by string init.
Also reorder test in verifier to check for string_init first.
Change-Id: I585ef3f5890819a3e233236ea85b51a03918f5dc
Diffstat (limited to 'runtime/interpreter')
-rw-r--r-- | runtime/interpreter/interpreter_common.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc index ef3c6e2809..ae67efbcd1 100644 --- a/runtime/interpreter/interpreter_common.cc +++ b/runtime/interpreter/interpreter_common.cc @@ -501,6 +501,7 @@ bool DoCall(ArtMethod* called_method, Thread* self, ShadowFrame& shadow_frame, uint16_t num_regs; if (LIKELY(code_item != nullptr)) { num_regs = code_item->registers_size_; + DCHECK_EQ(string_init ? num_ins - 1 : num_ins, code_item->ins_size_); } else { DCHECK(called_method->IsNative() || called_method->IsProxyMethod()); num_regs = num_ins; |