summaryrefslogtreecommitdiff
path: root/runtime/stack_map.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/stack_map.h')
-rw-r--r--runtime/stack_map.h11
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 {