diff options
Diffstat (limited to 'compiler/optimizing')
| -rw-r--r-- | compiler/optimizing/inliner.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 8674e727bb..8f5c51ff5a 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -578,12 +578,12 @@ HInliner::InlineCacheType HInliner::GetInlineCacheAOT( return kInlineCacheNoData; } - ProfileCompilationInfo::OfflineProfileMethodInfo offline_profile; - bool found = pci->GetMethod(caller_dex_file.GetLocation(), - caller_dex_file.GetLocationChecksum(), - caller_compilation_unit_.GetDexMethodIndex(), - &offline_profile); - if (!found) { + // Use the profile arena when extracting the method info. + std::unique_ptr<ProfileCompilationInfo::OfflineProfileMethodInfo> offline_profile = + pci->GetMethod(caller_dex_file.GetLocation(), + caller_dex_file.GetLocationChecksum(), + caller_compilation_unit_.GetDexMethodIndex()); + if (offline_profile == nullptr) { return kInlineCacheNoData; // no profile information for this invocation. } @@ -593,7 +593,7 @@ HInliner::InlineCacheType HInliner::GetInlineCacheAOT( return kInlineCacheNoData; } else { return ExtractClassesFromOfflineProfile(invoke_instruction, - offline_profile, + *(offline_profile.get()), *inline_cache); } } |