diff options
| author | 2018-07-24 08:00:52 +0000 | |
|---|---|---|
| committer | 2018-07-24 08:00:52 +0000 | |
| commit | b789d8966c1ca9cdd39d2ea54ea90aae28a3d5af (patch) | |
| tree | 9e4196fffe45a75b84e1e81a1d39f9579700c69d /compiler/optimizing/instruction_builder.h | |
| parent | bf3e4e2d77cece977d5de83bd192356528adaad4 (diff) | |
| parent | fca0b491a34144acf6769ab9c5fb528ac81bd325 (diff) | |
Merge "Fix a stale reference use."
Diffstat (limited to 'compiler/optimizing/instruction_builder.h')
| -rw-r--r-- | compiler/optimizing/instruction_builder.h | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/compiler/optimizing/instruction_builder.h b/compiler/optimizing/instruction_builder.h index 578172a18e..af1b86ca6f 100644 --- a/compiler/optimizing/instruction_builder.h +++ b/compiler/optimizing/instruction_builder.h @@ -219,7 +219,8 @@ class HInstructionBuilder : public ValueObject {    // Builds a `HLoadClass` loading the given `type_index`.    HLoadClass* BuildLoadClass(dex::TypeIndex type_index, uint32_t dex_pc); -  HLoadClass* BuildLoadClass(dex::TypeIndex type_index, +  HLoadClass* BuildLoadClass(ScopedObjectAccess& soa, +                             dex::TypeIndex type_index,                               const DexFile& dex_file,                               Handle<mirror::Class> klass,                               uint32_t dex_pc, @@ -229,7 +230,7 @@ class HInstructionBuilder : public ValueObject {    Handle<mirror::Class> ResolveClass(ScopedObjectAccess& soa, dex::TypeIndex type_index)        REQUIRES_SHARED(Locks::mutator_lock_); -  bool LoadClassNeedsAccessCheck(Handle<mirror::Class> klass) +  bool LoadClassNeedsAccessCheck(ScopedObjectAccess& soa, Handle<mirror::Class> klass)        REQUIRES_SHARED(Locks::mutator_lock_);    // Builds a `HLoadMethodHandle` loading the given `method_handle_index`. @@ -239,10 +240,12 @@ class HInstructionBuilder : public ValueObject {    void BuildLoadMethodType(dex::ProtoIndex proto_index, uint32_t dex_pc);    // Returns the outer-most compiling method's class. -  ObjPtr<mirror::Class> GetOutermostCompilingClass() const; +  ObjPtr<mirror::Class> ResolveOutermostCompilingClass(ScopedObjectAccess& soa) const +      REQUIRES_SHARED(Locks::mutator_lock_);    // Returns the class whose method is being compiled. -  ObjPtr<mirror::Class> GetCompilingClass() const; +  ObjPtr<mirror::Class> ResolveCompilingClass(ScopedObjectAccess& soa) const +      REQUIRES_SHARED(Locks::mutator_lock_);    // Returns whether `type_index` points to the outer-most compiling method's class.    bool IsOutermostCompilingClass(dex::TypeIndex type_index) const; @@ -269,6 +272,7 @@ class HInstructionBuilder : public ValueObject {    void HandleStringInitResult(HInvokeStaticOrDirect* invoke);    HClinitCheck* ProcessClinitCheckForInvoke( +      ScopedObjectAccess& soa,        uint32_t dex_pc,        ArtMethod* method,        HInvokeStaticOrDirect::ClinitCheckRequirement* clinit_check_requirement) @@ -282,7 +286,8 @@ class HInstructionBuilder : public ValueObject {    void BuildConstructorFenceForAllocation(HInstruction* allocation);    // Return whether the compiler can assume `cls` is initialized. -  bool IsInitialized(Handle<mirror::Class> cls) const REQUIRES_SHARED(Locks::mutator_lock_); +  bool IsInitialized(ScopedObjectAccess& soa, Handle<mirror::Class> cls) const +      REQUIRES_SHARED(Locks::mutator_lock_);    // Try to resolve a method using the class linker. Return null if a method could    // not be resolved. |