diff options
Diffstat (limited to 'runtime/interpreter')
-rw-r--r-- | runtime/interpreter/interpreter.cc | 2 | ||||
-rw-r--r-- | runtime/interpreter/interpreter_common.cc | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc index 423b952..a37aee5 100644 --- a/runtime/interpreter/interpreter.cc +++ b/runtime/interpreter/interpreter.cc @@ -423,7 +423,7 @@ void EnterInterpreterFromDeoptimize(Thread* self, ShadowFrame* shadow_frame, JVa } ShadowFrame* old_frame = shadow_frame; shadow_frame = shadow_frame->GetLink(); - delete old_frame; + ShadowFrame::DeleteDeoptimizedFrame(old_frame); } ret_val->SetJ(value.GetJ()); } 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; |