summaryrefslogtreecommitdiffstats
path: root/runtime/interpreter
diff options
context:
space:
mode:
authorJeff Hao <jeffhao@google.com>2015-04-29 15:58:17 -0700
committerJeff Hao <jeffhao@google.com>2015-04-29 15:58:17 -0700
commit9651d9b4ce938e49788e83d38d410eccee54ac90 (patch)
treeb1c05e7fa4ce6fb4787824b92da28ba2a3a6fc9d /runtime/interpreter
parent8c9c1ae515f32142ab85103c5d45bd7ce4e6eb3c (diff)
downloadart-9651d9b4ce938e49788e83d38d410eccee54ac90.zip
art-9651d9b4ce938e49788e83d38d410eccee54ac90.tar.gz
art-9651d9b4ce938e49788e83d38d410eccee54ac90.tar.bz2
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.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc
index ef3c6e2..ae67efb 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;