diff options
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(); |