diff options
Diffstat (limited to 'compiler/optimizing/inliner.cc')
| -rw-r--r-- | compiler/optimizing/inliner.cc | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 452be6feae..035e5ce3e1 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -392,8 +392,9 @@ ArtMethod* HInliner::TryCHADevirtualization(ArtMethod* resolved_method) {    return single_impl;  } -static bool AlwaysThrows(ArtMethod* method) { -  CodeItemDataAccessor accessor(method); +static bool AlwaysThrows(ArtMethod* method) +    REQUIRES_SHARED(Locks::mutator_lock_) { +  CodeItemDataAccessor accessor(method->DexInstructionData());    // Skip native methods, methods with try blocks, and methods that are too large.    if (!accessor.HasCodeItem() ||        accessor.TriesSize() != 0 || @@ -1418,7 +1419,7 @@ bool HInliner::TryBuildAndInline(HInvoke* invoke_instruction,    bool same_dex_file = IsSameDexFile(*outer_compilation_unit_.GetDexFile(), *method->GetDexFile()); -  CodeItemDataAccessor accessor(method); +  CodeItemDataAccessor accessor(method->DexInstructionData());    if (!accessor.HasCodeItem()) {      LOG_FAIL_NO_STAT() @@ -1697,7 +1698,7 @@ bool HInliner::TryBuildAndInlineHelper(HInvoke* invoke_instruction,    const DexFile::CodeItem* code_item = resolved_method->GetCodeItem();    const DexFile& callee_dex_file = *resolved_method->GetDexFile();    uint32_t method_index = resolved_method->GetDexMethodIndex(); -  CodeItemDebugInfoAccessor code_item_accessor(resolved_method); +  CodeItemDebugInfoAccessor code_item_accessor(resolved_method->DexInstructionDebugInfo());    ClassLinker* class_linker = caller_compilation_unit_.GetClassLinker();    Handle<mirror::DexCache> dex_cache = NewHandleIfDifferent(resolved_method->GetDexCache(),                                                              caller_compilation_unit_.GetDexCache(),  |