diff options
Diffstat (limited to 'runtime/stack_map.h')
-rw-r--r-- | runtime/stack_map.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/runtime/stack_map.h b/runtime/stack_map.h index 103402baa6..714895744b 100644 --- a/runtime/stack_map.h +++ b/runtime/stack_map.h @@ -262,10 +262,13 @@ class RegisterMask : public BitTableAccessor<2> { // Method indices are not very dedup friendly. // Separating them greatly improves dedup efficiency of the other tables. -class MethodInfo : public BitTableAccessor<1> { +class MethodInfo : public BitTableAccessor<2> { public: BIT_TABLE_HEADER(MethodInfo) BIT_TABLE_COLUMN(0, MethodIndex) + BIT_TABLE_COLUMN(1, DexFileIndex) + + static constexpr uint32_t kSameDexFile = -1; }; /** @@ -360,8 +363,12 @@ class CodeInfo { return stack_maps_.NumRows(); } + MethodInfo GetMethodInfoOf(InlineInfo inline_info) const { + return method_infos_.GetRow(inline_info.GetMethodInfoIndex()); + } + uint32_t GetMethodIndexOf(InlineInfo inline_info) const { - return method_infos_.GetRow(inline_info.GetMethodInfoIndex()).GetMethodIndex(); + return GetMethodInfoOf(inline_info).GetMethodIndex(); } ALWAYS_INLINE DexRegisterMap GetDexRegisterMapOf(StackMap stack_map) const { |