diff options
Diffstat (limited to 'compiler/oat_writer.cc')
| -rw-r--r-- | compiler/oat_writer.cc | 16 | 
1 files changed, 6 insertions, 10 deletions
diff --git a/compiler/oat_writer.cc b/compiler/oat_writer.cc index 227fdc4874..bd2c5e3bfc 100644 --- a/compiler/oat_writer.cc +++ b/compiler/oat_writer.cc @@ -1060,7 +1060,6 @@ class OatWriter::WriteCodeMethodVisitor : public OatDexMethodVisitor {    WriteCodeMethodVisitor(OatWriter* writer, OutputStream* out, const size_t file_offset,                           size_t relative_offset) SHARED_LOCK_FUNCTION(Locks::mutator_lock_)      : OatDexMethodVisitor(writer, relative_offset), -      class_loader_(writer->HasImage() ? writer->image_writer_->GetClassLoader() : nullptr),        out_(out),        file_offset_(file_offset),        soa_(Thread::Current()), @@ -1246,13 +1245,12 @@ class OatWriter::WriteCodeMethodVisitor : public OatDexMethodVisitor {    }   private: -  ObjPtr<mirror::ClassLoader> class_loader_;    OutputStream* const out_;    const size_t file_offset_;    const ScopedObjectAccess soa_;    const ScopedAssertNoThreadSuspension no_thread_suspension_;    ClassLinker* const class_linker_; -  ObjPtr<mirror::DexCache> dex_cache_; +  mirror::DexCache* dex_cache_;    std::vector<uint8_t> patched_code_;    void ReportWriteFailure(const char* what, const ClassDataItemIterator& it) { @@ -1263,7 +1261,7 @@ class OatWriter::WriteCodeMethodVisitor : public OatDexMethodVisitor {    ArtMethod* GetTargetMethod(const LinkerPatch& patch)        REQUIRES_SHARED(Locks::mutator_lock_) {      MethodReference ref = patch.TargetMethod(); -    ObjPtr<mirror::DexCache> dex_cache = +    mirror::DexCache* dex_cache =          (dex_file_ == ref.dex_file) ? dex_cache_ : class_linker_->FindDexCache(              Thread::Current(), *ref.dex_file);      ArtMethod* method = dex_cache->GetResolvedMethod( @@ -1297,7 +1295,7 @@ class OatWriter::WriteCodeMethodVisitor : public OatDexMethodVisitor {      return target_offset;    } -  ObjPtr<mirror::DexCache> GetDexCache(const DexFile* target_dex_file) +  mirror::DexCache* GetDexCache(const DexFile* target_dex_file)        REQUIRES_SHARED(Locks::mutator_lock_) {      return (target_dex_file == dex_file_)          ? dex_cache_ @@ -1305,12 +1303,10 @@ class OatWriter::WriteCodeMethodVisitor : public OatDexMethodVisitor {    }    mirror::Class* GetTargetType(const LinkerPatch& patch) REQUIRES_SHARED(Locks::mutator_lock_) { -    DCHECK(writer_->HasImage()); -    ObjPtr<mirror::DexCache> dex_cache = GetDexCache(patch.TargetTypeDexFile()); -    ObjPtr<mirror::Class> type = -        ClassLinker::LookupResolvedType(patch.TargetTypeIndex(), dex_cache, class_loader_); +    mirror::DexCache* dex_cache = GetDexCache(patch.TargetTypeDexFile()); +    mirror::Class* type = dex_cache->GetResolvedType(patch.TargetTypeIndex());      CHECK(type != nullptr); -    return type.Ptr(); +    return type;    }    mirror::String* GetTargetString(const LinkerPatch& patch) REQUIRES_SHARED(Locks::mutator_lock_) {  |