diff options
author | 2015-05-20 18:48:31 +0100 | |
---|---|---|
committer | 2015-05-21 12:10:00 +0100 | |
commit | b176d7c6c8c01a50317f837a78de5da57ee84fb2 (patch) | |
tree | 81ec0c16267c527bdc64923b374be915206e6af9 /compiler/optimizing/stack_map_stream.cc | |
parent | 713c59e813daa92da3f1678add6c4c7e16dcff11 (diff) |
Also encode the InvokeType in an InlineInfo.
This will be needed to recover the call stack.
Change-Id: I2fe10785eb1167939c8cce1862b2d7f4066e16ec
Diffstat (limited to 'compiler/optimizing/stack_map_stream.cc')
-rw-r--r-- | compiler/optimizing/stack_map_stream.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/optimizing/stack_map_stream.cc b/compiler/optimizing/stack_map_stream.cc index 89035a3683..b446815770 100644 --- a/compiler/optimizing/stack_map_stream.cc +++ b/compiler/optimizing/stack_map_stream.cc @@ -101,11 +101,13 @@ void StackMapStream::AddDexRegisterEntry(DexRegisterLocation::Kind kind, int32_t void StackMapStream::BeginInlineInfoEntry(uint32_t method_index, uint32_t dex_pc, + InvokeType invoke_type, uint32_t num_dex_registers) { DCHECK(!in_inline_frame_); in_inline_frame_ = true; current_inline_info_.method_index = method_index; current_inline_info_.dex_pc = dex_pc; + current_inline_info_.invoke_type = invoke_type; current_inline_info_.num_dex_registers = num_dex_registers; current_inline_info_.dex_register_locations_start_index = dex_register_locations_.Size(); if (num_dex_registers != 0) { @@ -313,6 +315,7 @@ void StackMapStream::FillIn(MemoryRegion region) { InlineInfoEntry inline_entry = inline_infos_.Get(depth + entry.inline_infos_start_index); inline_info.SetMethodIndexAtDepth(depth, inline_entry.method_index); inline_info.SetDexPcAtDepth(depth, inline_entry.dex_pc); + inline_info.SetInvokeTypeAtDepth(depth, inline_entry.invoke_type); if (inline_entry.num_dex_registers == 0) { // No dex map available. inline_info.SetDexRegisterMapOffsetAtDepth(depth, StackMap::kNoDexRegisterMap); |