/art/libdexfile/dex/ |
D | dex_file_verifier_test.cc | 40 static void MakeDexVersion37(DexFile* dex_file) { in MakeDexVersion37() argument 42 CHECK_EQ(*(dex_file->Begin() + offset), '5'); in MakeDexVersion37() 43 *(const_cast<uint8_t*>(dex_file->Begin()) + offset) = '7'; in MakeDexVersion37() 46 static void FixUpChecksum(uint8_t* dex_file) { in FixUpChecksum() argument 47 DexFile::Header* header = reinterpret_cast<DexFile::Header*>(dex_file); in FixUpChecksum() 51 const uint8_t* non_sum_ptr = dex_file + non_sum; in FixUpChecksum() 70 std::unique_ptr<DexFile> dex_file(GetDexFile(dex_bytes.get(), length)); in VerifyModification() local 71 f(dex_file.get()); in VerifyModification() 72 FixUpChecksum(const_cast<uint8_t*>(dex_file->Begin())); in VerifyModification() 76 bool success = DexFileVerifier::Verify(dex_file.get(), in VerifyModification() [all …]
|
D | test_dex_file_builder_test.cc | 32 std::unique_ptr<const DexFile> dex_file(builder.Build(dex_location)); in TEST() local 33 ASSERT_TRUE(dex_file != nullptr); in TEST() 34 EXPECT_STREQ(dex_location, dex_file->GetLocation().c_str()); in TEST() 49 ASSERT_EQ(arraysize(expected_strings), dex_file->NumStringIds()); in TEST() 52 dex_file->GetStringData(dex_file->GetStringId(dex::StringIndex(i)))) << i; in TEST() 63 ASSERT_EQ(arraysize(expected_types), dex_file->NumTypeIds()); in TEST() 66 dex_file->GetTypeDescriptor(dex_file->GetTypeId(dex::TypeIndex(i)))) << i; in TEST() 69 ASSERT_EQ(1u, dex_file->NumFieldIds()); in TEST() 70 EXPECT_STREQ("[I TestClass.intField", dex_file->PrettyField(0u).c_str()); in TEST() 72 ASSERT_EQ(2u, dex_file->NumProtoIds()); in TEST() [all …]
|
D | method_reference.h | 32 return dex_file->PrettyMethod(index, with_signature); 35 return dex_file->GetMethodId(index); in GetMethodId() 42 if (mr1.dex_file == mr2.dex_file) { in operator() 55 int descriptor_diff = strcmp(mr1.dex_file->StringByTypeIdx(mid1.class_idx_), in SlowCompare() 56 mr2.dex_file->StringByTypeIdx(mid2.class_idx_)); in SlowCompare() 61 int name_diff = strcmp(mr1.dex_file->GetMethodName(mid1), mr2.dex_file->GetMethodName(mid2)); in SlowCompare() 66 const DexFile::ProtoId& prid1 = mr1.dex_file->GetProtoId(mid1.proto_idx_); in SlowCompare() 67 const DexFile::ProtoId& prid2 = mr2.dex_file->GetProtoId(mid2.proto_idx_); in SlowCompare() 68 int return_type_diff = strcmp(mr1.dex_file->StringByTypeIdx(prid1.return_type_idx_), in SlowCompare() 69 mr2.dex_file->StringByTypeIdx(prid2.return_type_idx_)); in SlowCompare() [all …]
|
D | dex_file_reference.h | 28 DexFileReference(const DexFile* file, uint32_t idx) : dex_file(file), index(idx) {} in DexFileReference() 29 const DexFile* dex_file; variable 34 if (a.dex_file != b.dex_file) { in operator() 35 return a.dex_file < b.dex_file; in operator() 47 return a.dex_file == b.dex_file && a.index == b.index;
|
D | dex_file_layout.cc | 42 void DexLayoutSection::Subsection::Madvise(const DexFile* dex_file, int advice) const { in Madvise() argument 43 DCHECK(dex_file != nullptr); in Madvise() 44 DCHECK_LT(start_offset_, dex_file->Size()); in Madvise() 45 DCHECK_LE(end_offset_, dex_file->Size()); in Madvise() 46 MadviseLargestPageAlignedRegion(dex_file->Begin() + start_offset_, in Madvise() 47 dex_file->Begin() + end_offset_, in Madvise() 51 void DexLayoutSections::Madvise(const DexFile* dex_file, MadviseState state) const { in Madvise() argument 57 dex_file, in Madvise() 60 dex_file, in Madvise() 66 dex_file, in Madvise() [all …]
|
D | code_item_accessors-inl.h | 50 inline void CodeItemInstructionAccessor::Init(const DexFile& dex_file, in Init() argument 53 DCHECK(dex_file.IsInDataSection(code_item)); in Init() 54 if (dex_file.IsCompactDexFile()) { in Init() 57 DCHECK(dex_file.IsStandardDexFile()); in Init() 64 const DexFile& dex_file, in CodeItemInstructionAccessor() argument 66 Init(dex_file, code_item); in CodeItemInstructionAccessor() 103 inline void CodeItemDataAccessor::Init(const DexFile& dex_file, in Init() argument 106 if (dex_file.IsCompactDexFile()) { in Init() 109 DCHECK(dex_file.IsStandardDexFile()); in Init() 115 inline CodeItemDataAccessor::CodeItemDataAccessor(const DexFile& dex_file, in CodeItemDataAccessor() argument [all …]
|
D | type_reference.h | 47 StringReference sr1(tr1.dex_file, tr1.dex_file->GetTypeId(tr1.TypeIndex()).descriptor_idx_); in operator() 48 StringReference sr2(tr2.dex_file, tr2.dex_file->GetTypeId(tr2.TypeIndex()).descriptor_idx_); in operator()
|
/art/tools/hiddenapi/ |
D | hiddenapi_test.cc | 90 std::unique_ptr<const DexFile> dex_file(dex_loader.OpenDex( in OpenDex() local 93 if (dex_file.get() == nullptr) { in OpenDex() 96 } else if (!dex_file->IsStandardDexFile()) { in OpenDex() 101 return dex_file; in OpenDex() 113 const DexFile::ClassDef& FindClass(const char* desc, const DexFile& dex_file) { in FindClass() argument 114 for (uint32_t i = 0; i < dex_file.NumClassDefs(); ++i) { in FindClass() 115 const DexFile::ClassDef& class_def = dex_file.GetClassDef(i); in FindClass() 116 if (strcmp(desc, dex_file.GetClassDescriptor(class_def)) == 0) { in FindClass() 127 const DexFile& dex_file) { in GetFieldHiddenFlags() argument 128 const uint8_t* class_data = dex_file.GetClassData(class_def); in GetFieldHiddenFlags() [all …]
|
/art/dexlayout/ |
D | dex_ir_builder.cc | 28 static void CheckAndSetRemainingOffsets(const DexFile& dex_file, 32 Header* DexIrBuilder(const DexFile& dex_file, in DexIrBuilder() argument 35 const DexFile::Header& disk_header = dex_file.GetHeader(); in DexIrBuilder() 46 dex_file.SupportsDefaultMethods()); in DexIrBuilder() 52 for (uint32_t i = 0; i < dex_file.NumStringIds(); ++i) { in DexIrBuilder() 53 collections.CreateStringId(dex_file, i); in DexIrBuilder() 57 for (uint32_t i = 0; i < dex_file.NumTypeIds(); ++i) { in DexIrBuilder() 58 collections.CreateTypeId(dex_file, i); in DexIrBuilder() 62 for (uint32_t i = 0; i < dex_file.NumProtoIds(); ++i) { in DexIrBuilder() 63 collections.CreateProtoId(dex_file, i); in DexIrBuilder() [all …]
|
D | dex_ir.cc | 192 EncodedValue* Collections::ReadEncodedValue(const DexFile& dex_file, const uint8_t** data) { in ReadEncodedValue() argument 196 ReadEncodedValue(dex_file, data, type, encoded_value >> 5, item); in ReadEncodedValue() 200 EncodedValue* Collections::ReadEncodedValue(const DexFile& dex_file, in ReadEncodedValue() argument 205 ReadEncodedValue(dex_file, data, type, length, item); in ReadEncodedValue() 209 void Collections::ReadEncodedValue(const DexFile& dex_file, in ReadEncodedValue() argument 283 const uint32_t offset = *data - dex_file.DataBegin(); in ReadEncodedValue() 287 values->push_back(std::unique_ptr<EncodedValue>(ReadEncodedValue(dex_file, data))); in ReadEncodedValue() 304 new AnnotationElement(GetStringId(name_index), ReadEncodedValue(dex_file, data)))); in ReadEncodedValue() 319 void Collections::CreateStringId(const DexFile& dex_file, uint32_t i) { in CreateStringId() argument 320 const DexFile::StringId& disk_string_id = dex_file.GetStringId(dex::StringIndex(i)); in CreateStringId() [all …]
|
D | dexlayout_test.cc | 269 for (const std::string &dex_file : GetLibCoreDexFileNames()) { in FullPlainOutputExec() local 271 { dexdump, "-d", "-f", "-h", "-l", "plain", "-o", dexdump_filename, dex_file }; in FullPlainOutputExec() 273 { "-d", "-f", "-h", "-l", "plain", "-o", dexlayout_filename, dex_file }; in FullPlainOutputExec() 296 for (const std::string &dex_file : GetLibCoreDexFileNames()) { in DexFileOutputExec() local 298 { "-w", tmp_dir, "-o", tmp_name, dex_file }; in DexFileOutputExec() 302 size_t dex_file_last_slash = dex_file.rfind('/'); in DexFileOutputExec() 303 std::string dex_file_name = dex_file.substr(dex_file_last_slash + 1); in DexFileOutputExec() 305 { "/usr/bin/unzip", dex_file, "classes.dex", "-d", tmp_dir}; in DexFileOutputExec() 345 for (const std::unique_ptr<const DexFile>& dex_file : dex_files) { in CreateProfile() local 346 for (uint32_t i = 0; i < dex_file->NumMethodIds(); i += 2) { in CreateProfile() [all …]
|
/art/runtime/verifier/ |
D | verifier_deps.cc | 38 for (const DexFile* dex_file : dex_files) { in VerifierDeps() local 39 DCHECK(GetDexFileDeps(*dex_file) == nullptr); in VerifierDeps() 41 dex_deps_.emplace(dex_file, std::move(deps)); in VerifierDeps() 51 for (const DexFile* dex_file : dex_files) { in MergeWith() local 52 DexFileDeps* my_deps = GetDexFileDeps(*dex_file); in MergeWith() 53 const DexFileDeps& other_deps = *other.GetDexFileDeps(*dex_file); in MergeWith() 66 VerifierDeps::DexFileDeps* VerifierDeps::GetDexFileDeps(const DexFile& dex_file) { in GetDexFileDeps() argument 67 auto it = dex_deps_.find(&dex_file); in GetDexFileDeps() 71 const VerifierDeps::DexFileDeps* VerifierDeps::GetDexFileDeps(const DexFile& dex_file) const { in GetDexFileDeps() 72 auto it = dex_deps_.find(&dex_file); in GetDexFileDeps() [all …]
|
D | verifier_deps.h | 69 static void MaybeRecordVerificationStatus(const DexFile& dex_file, 76 static void MaybeRecordClassResolution(const DexFile& dex_file, 84 static void MaybeRecordFieldResolution(const DexFile& dex_file, 92 static void MaybeRecordMethodResolution(const DexFile& dex_file, 101 static void MaybeRecordAssignability(const DexFile& dex_file, 120 const std::set<dex::TypeIndex>& GetUnverifiedClasses(const DexFile& dex_file) const { in GetUnverifiedClasses() argument 121 return GetDexFileDeps(dex_file)->unverified_classes_; in GetUnverifiedClasses() 209 DexFileDeps* GetDexFileDeps(const DexFile& dex_file); 211 const DexFileDeps* GetDexFileDeps(const DexFile& dex_file) const; 229 dex::StringIndex GetIdFromString(const DexFile& dex_file, const std::string& str) [all …]
|
/art/compiler/utils/ |
D | atomic_dex_ref_map-inl.h | 33 const DexFile* dex_file) { in NumberOfDexIndices() argument 40 return dex_file->NumMethodIds(); in NumberOfDexIndices() 43 return dex_file->NumClassDefs(); in NumberOfDexIndices() 46 return dex_file->NumTypeIds(); in NumberOfDexIndices() 56 ElementArray* const array = GetArray(ref.dex_file); in Insert() 69 const ElementArray* const array = GetArray(ref.dex_file); in Get() 80 ElementArray* const array = GetArray(ref.dex_file); in Remove() 89 inline void AtomicDexRefMap<DexFileReferenceType, Value>::AddDexFile(const DexFile* dex_file) { in AddDexFile() argument 90 arrays_.Put(dex_file, std::move(ElementArray(NumberOfDexIndices(dex_file)))); in AddDexFile() 96 for (const DexFile* dex_file : dex_files) { in AddDexFiles() local [all …]
|
D | atomic_dex_ref_map.h | 54 void AddDexFile(const DexFile* dex_file); 57 bool HaveDexFile(const DexFile* dex_file) const { in HaveDexFile() argument 58 return arrays_.find(dex_file) != arrays_.end(); in HaveDexFile() 72 const ElementArray* GetArray(const DexFile* dex_file) const; 73 ElementArray* GetArray(const DexFile* dex_file); 75 static size_t NumberOfDexIndices(const DexFile* dex_file);
|
/art/runtime/mirror/ |
D | dex_cache.cc | 40 const DexFile* dex_file, in InitializeDexCache() argument 43 DCHECK(dex_file != nullptr); in InitializeDexCache() 45 DexCacheArraysLayout layout(image_pointer_size, dex_file); in InitializeDexCache() 48 if (dex_file->NumStringIds() != 0u || in InitializeDexCache() 49 dex_file->NumTypeIds() != 0u || in InitializeDexCache() 50 dex_file->NumMethodIds() != 0u || in InitializeDexCache() 51 dex_file->NumFieldIds() != 0u) { in InitializeDexCache() 60 StringDexCacheType* strings = (dex_file->NumStringIds() == 0u) ? nullptr : in InitializeDexCache() 62 TypeDexCacheType* types = (dex_file->NumTypeIds() == 0u) ? nullptr : in InitializeDexCache() 64 MethodDexCacheType* methods = (dex_file->NumMethodIds() == 0u) ? nullptr : in InitializeDexCache() [all …]
|
/art/tools/veridex/ |
D | hidden_api.cc | 26 std::string HiddenApi::GetApiMethodName(const DexFile& dex_file, uint32_t method_index) { in GetApiMethodName() argument 28 const DexFile::MethodId& method_id = dex_file.GetMethodId(method_index); in GetApiMethodName() 29 ss << dex_file.StringByTypeIdx(method_id.class_idx_) in GetApiMethodName() 31 << dex_file.GetMethodName(method_id) in GetApiMethodName() 32 << dex_file.GetMethodSignature(method_id).ToString(); in GetApiMethodName() 36 std::string HiddenApi::GetApiFieldName(const DexFile& dex_file, uint32_t field_index) { in GetApiFieldName() argument 38 const DexFile::FieldId& field_id = dex_file.GetFieldId(field_index); in GetApiFieldName() 39 ss << dex_file.StringByTypeIdx(field_id.class_idx_) in GetApiFieldName() 41 << dex_file.GetFieldName(field_id) in GetApiFieldName() 43 << dex_file.GetFieldTypeDescriptor(field_id); in GetApiFieldName()
|
D | hidden_api_finder.cc | 54 const DexFile& dex_file = resolver->GetDexFile(); in CollectAccesses() local 57 for (uint32_t i = 0; i < dex_file.NumTypeIds(); ++i) { in CollectAccesses() 58 std::string name(dex_file.StringByTypeIdx(dex::TypeIndex(i))); in CollectAccesses() 65 size_t class_def_count = dex_file.NumClassDefs(); in CollectAccesses() 67 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index); in CollectAccesses() 68 const uint8_t* class_data = dex_file.GetClassData(class_def); in CollectAccesses() 73 ClassDataItemIterator it(dex_file, class_data); in CollectAccesses() 80 CodeItemDataAccessor code_item_accessor(dex_file, code_item); in CollectAccesses() 85 std::string name = std::string(dex_file.StringDataByIdx(string_index)); in CollectAccesses() 107 MethodReference(&dex_file, it.GetMemberIndex())); in CollectAccesses() [all …]
|
/art/runtime/ |
D | imtable-inl.h | 48 const DexFile* dex_file = method->GetDexFile(); in GetImtHashComponents() local 49 const DexFile::MethodId& method_id = dex_file->GetMethodId(method->GetDexMethodIndex()); in GetImtHashComponents() 52 *class_hash = ComputeModifiedUtf8Hash(dex_file->GetMethodDeclaringClassDescriptor(method_id)); in GetImtHashComponents() 55 *name_hash = ComputeModifiedUtf8Hash(dex_file->GetMethodName(method_id)); in GetImtHashComponents() 57 const DexFile::ProtoId& proto_id = dex_file->GetMethodPrototype(method_id); in GetImtHashComponents() 61 dex_file->GetTypeDescriptor(dex_file->GetTypeId(proto_id.return_type_idx_))); in GetImtHashComponents() 66 const DexFile::TypeList* param_types = dex_file->GetProtoParameters(proto_id); in GetImtHashComponents() 71 dex_file->GetTypeDescriptor(dex_file->GetTypeId(type.type_idx_))); in GetImtHashComponents()
|
D | type_lookup_table.cc | 53 std::unique_ptr<TypeLookupTable> TypeLookupTable::Create(const DexFile& dex_file, in Create() argument 55 const uint32_t num_class_defs = dex_file.NumClassDefs(); in Create() 57 ? new TypeLookupTable(dex_file, storage) in Create() 68 TypeLookupTable::TypeLookupTable(const DexFile& dex_file, uint8_t* storage) in TypeLookupTable() argument 69 : dex_data_begin_(dex_file.DataBegin()), in TypeLookupTable() 70 raw_data_length_(RawDataLength(dex_file.NumClassDefs())), in TypeLookupTable() 71 mask_(CalculateMask(dex_file.NumClassDefs())), in TypeLookupTable() 80 for (size_t i = 0; i < dex_file.NumClassDefs(); ++i) { in TypeLookupTable() 81 const DexFile::ClassDef& class_def = dex_file.GetClassDef(i); in TypeLookupTable() 82 const DexFile::TypeId& type_id = dex_file.GetTypeId(class_def.class_idx_); in TypeLookupTable() [all …]
|
D | art_method-inl.h | 187 const DexFile* dex_file = GetDexFile(); in GetDeclaringClassDescriptor() local 188 return dex_file->GetMethodDeclaringClassDescriptor(dex_file->GetMethodId(dex_method_idx)); in GetDeclaringClassDescriptor() 198 const DexFile* dex_file = GetDexFile(); in GetShorty() local 205 return dex_file->GetMethodShorty(dex_file->GetMethodId(GetDexMethodIndex<kWithoutReadBarrier>()), in GetShorty() 213 const DexFile* dex_file = GetDexFile(); in GetSignature() local 214 return dex_file->GetMethodSignature(dex_file->GetMethodId(dex_method_idx)); in GetSignature() 223 const DexFile* dex_file = GetDexFile(); in GetName() local 224 return dex_file->GetMethodName(dex_file->GetMethodId(dex_method_idx)); in GetName() 267 const DexFile* dex_file = GetDexFile(); in GetPrototype() local 268 return dex_file->GetMethodPrototype(dex_file->GetMethodId(GetDexMethodIndex())); in GetPrototype() [all …]
|
/art/compiler/driver/ |
D | compiler_driver.cc | 385 const DexFile& dex_file, const DexFile::ClassDef& class_def) in GetDexToDexCompilationLevel() argument 390 if (dex_file.GetContainer() != nullptr && dex_file.GetContainer()->IsReadOnly()) { in GetDexToDexCompilationLevel() 395 const char* descriptor = dex_file.GetClassDescriptor(class_def); in GetDexToDexCompilationLevel() 429 const DexFile& dex_file, in GetDexToDexCompilationLevel() argument 435 return GetDexToDexCompilationLevel(self, driver, class_loader, dex_file, class_def); in GetDexToDexCompilationLevel() 463 const DexFile& dex_file, in CompileMethodHarness() argument 471 MethodReference method_ref(&dex_file, method_idx); in CompileMethodHarness() 481 dex_file, in CompileMethodHarness() 489 LOG(WARNING) << "Compilation of " << dex_file.PrettyMethod(method_idx) in CompileMethodHarness() 511 LOG(FATAL) << "Unexpected exception compiling: " << dex_file.PrettyMethod(method_idx) << "\n" in CompileMethodHarness() [all …]
|
/art/profman/ |
D | boot_image_profile.cc | 52 for (const std::unique_ptr<const DexFile>& dex_file : dex_files) { in GenerateBootImageProfile() local 55 for (size_t i = 0; i < dex_file->NumMethodIds(); ++i) { in GenerateBootImageProfile() 56 MethodReference ref(dex_file.get(), i); in GenerateBootImageProfile() 77 for (size_t i = 0; i < dex_file->NumClassDefs(); ++i) { in GenerateBootImageProfile() 78 const DexFile::ClassDef& class_def = dex_file->GetClassDef(i); in GenerateBootImageProfile() 79 TypeReference ref(dex_file.get(), class_def.class_idx_); in GenerateBootImageProfile() 81 const uint8_t* class_data = dex_file->GetClassData(class_def); in GenerateBootImageProfile() 83 ClassDataItemIterator it(*dex_file, class_data); in GenerateBootImageProfile() 115 profile->ContainsClass(*ref.dex_file, ref.TypeIndex())) { in GenerateBootImageProfile()
|
/art/runtime/dex/ |
D | art_dex_file_loader.cc | 142 std::unique_ptr<const DexFile> dex_file(OpenFile(fd.Release(), in GetMultiDexChecksums() local 148 if (dex_file == nullptr) { in GetMultiDexChecksums() 151 checksums->push_back(dex_file->GetHeader().checksum_); in GetMultiDexChecksums() 197 std::unique_ptr<DexFile> dex_file = OpenCommon(map->Begin(), in Open() local 210 if (dex_file != nullptr && dex_file->IsCompactDexFile()) { in Open() 215 return dex_file; in Open() 236 std::unique_ptr<const DexFile> dex_file(OpenFile(fd.Release(), in Open() local 242 if (dex_file.get() != nullptr) { in Open() 243 dex_files->push_back(std::move(dex_file)); in Open() 326 std::unique_ptr<DexFile> dex_file = OpenCommon(map->Begin(), in OpenFile() local [all …]
|
/art/compiler/ |
D | compiler.cc | 44 const DexFile& dex_file) { in IsPathologicalCase() argument 50 CodeItemDataAccessor accessor(dex_file, &code_item); in IsPathologicalCase() 54 << " in " << dex_file.PrettyMethod(method_idx); in IsPathologicalCase() 59 << accessor.RegistersSize() << " in " << dex_file.PrettyMethod(method_idx); in IsPathologicalCase()
|