diff options
| author | 2016-06-15 17:44:14 +0000 | |
|---|---|---|
| committer | 2016-06-15 17:44:14 +0000 | |
| commit | abdda2fb52eb7e9a6916899a913f78251d8ed277 (patch) | |
| tree | 165a31831ae077827b1e7b973bd5602125b5b142 /runtime/entrypoints/entrypoint_utils-inl.h | |
| parent | 2b87a47c09823031c4fe336dcef0867605debfd7 (diff) | |
| parent | badee9820fcf5dca5f8c46c3215ae1779ee7736e (diff) | |
Merge "Optimize IMT"
Diffstat (limited to 'runtime/entrypoints/entrypoint_utils-inl.h')
| -rw-r--r-- | runtime/entrypoints/entrypoint_utils-inl.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/runtime/entrypoints/entrypoint_utils-inl.h b/runtime/entrypoints/entrypoint_utils-inl.h index fc6257302a..916ca29319 100644 --- a/runtime/entrypoints/entrypoint_utils-inl.h +++ b/runtime/entrypoints/entrypoint_utils-inl.h @@ -559,9 +559,10 @@ inline ArtMethod* FindMethodFromCode(uint32_t method_idx, mirror::Object** this_ } } case kInterface: { - uint32_t imt_index = resolved_method->GetDexMethodIndex() % mirror::Class::kImtSize; - ArtMethod* imt_method = (*this_object)->GetClass()->GetEmbeddedImTableEntry( - imt_index, class_linker->GetImagePointerSize()); + uint32_t imt_index = resolved_method->GetDexMethodIndex() % ImTable::kSize; + size_t pointer_size = class_linker->GetImagePointerSize(); + ArtMethod* imt_method = (*this_object)->GetClass()->GetImt(pointer_size)-> + Get(imt_index, pointer_size); if (!imt_method->IsRuntimeMethod()) { if (kIsDebugBuild) { mirror::Class* klass = (*this_object)->GetClass(); |