Lines Matching refs:dex_file

40 #include "dex_file-inl.h"
340 explicit DexFileMethodSet(const DexFile& dex_file)
341 : dex_file_(dex_file),
342 method_indexes_(dex_file.NumMethodIds(), false, Allocator::GetMallocAllocator()) {
498 const DexFile& dex_file, const DexFile::ClassDef& class_def)
505 const char* descriptor = dex_file.GetClassDescriptor(class_def);
536 const DexFile& dex_file,
542 return GetDexToDexCompilationLevel(self, driver, class_loader, dex_file, class_def);
568 const DexFile& dex_file,
576 MethodReference method_ref(&dex_file, method_idx);
595 dex_file,
606 compiled_method = driver->GetCompiler()->JniCompile(access_flags, method_idx, dex_file);
632 dex_file, dex_cache);
644 LOG(WARNING) << "Compilation of " << PrettyMethod(method_idx, dex_file)
666 LOG(FATAL) << "Unexpected exception compiling: " << PrettyMethod(method_idx, dex_file) << "\n"
674 const DexFile* dex_file;
686 // Find the dex_file
687 dex_file = method->GetDexFile();
690 const DexFile::CodeItem* code_item = dex_file->GetCodeItem(method->GetCodeItemOffset());
696 dex_files.push_back(dex_file);
707 *dex_file,
708 dex_file->GetClassDef(class_def_idx));
719 *dex_file,
733 DCHECK(&dex_to_dex_references[0].GetDexFile() == dex_file);
745 *dex_file,
768 const DexFile* dex_file = dex_files[i];
769 CHECK(dex_file != nullptr);
771 *dex_file,
785 const DexFile& dex_file,
800 driver->CanAssumeStringIsPresentInDexCache(dex_file, string_index);
805 driver->CanAssumeStringIsPresentInDexCache(dex_file, string_index);
820 for (const DexFile* dex_file : dex_files) {
823 size_t class_def_count = dex_file->NumClassDefs();
825 const DexFile::ClassDef& class_def = dex_file->GetClassDef(class_def_index);
827 const uint8_t* class_data = dex_file->GetClassData(class_def);
833 ClassDataItemIterator it(*dex_file, class_data);
843 dex_file->StringByTypeIdx(class_def.class_idx_));
861 ResolveConstStrings(driver, *dex_file, it.GetMethodCodeItem());
875 ResolveConstStrings(driver, *dex_file, it.GetMethodCodeItem());
968 std::string tmp = PrettyMethod(method_ref.dex_method_index, *method_ref.dex_file, true);
983 << PrettyMethod(method_ref.dex_method_index, *method_ref.dex_file, true);
988 bool CompilerDriver::ShouldVerifyClassBasedOnProfile(const DexFile& dex_file,
995 bool result = profile_compilation_info_->ContainsClass(dex_file, class_idx);
999 << dex_file.GetClassDescriptor(dex_file.GetClassDef(class_idx));
1114 const DexFile* dex_file = exception_type.second;
1116 Handle<mirror::DexCache> dex_cache(hs2.NewHandle(class_linker->RegisterDexFile(*dex_file,
1119 class_linker->ResolveType(*dex_file,
1124 const DexFile::TypeId& type_id = dex_file->GetTypeId(exception_type_idx);
1125 const char* descriptor = dex_file->GetTypeDescriptor(type_id);
1348 &dex_to_dex_references_.back().GetDexFile() != method_ref.dex_file) {
1349 dex_to_dex_references_.emplace_back(*method_ref.dex_file);
1373 bool CompilerDriver::CanAssumeStringIsPresentInDexCache(const DexFile& dex_file,
1383 soa.Self(), dex_file, false)));
1386 class_linker->ResolveString(dex_file, string_idx, dex_cache);
1465 bool CompilerDriver::CanEmbedTypeInCode(const DexFile& dex_file, uint32_t type_idx,
1471 soa.Self(), dex_file, false);
1488 dex_file.StringDataByIdx(dex_file.GetTypeId(type_idx).descriptor_idx_));
1561 DexCacheArraysLayout CompilerDriver::GetDexCacheArraysLayout(const DexFile* dex_file) {
1562 return ContainsElement(GetDexFilesForOatFile(), dex_file)
1563 ? DexCacheArraysLayout(GetInstructionSetPointerSize(instruction_set_), dex_file)
1706 if (target_method->dex_file == dex_cache->GetDexFile() &&
1714 *target_method->dex_file, target_method->dex_method_index);
1720 target_method->dex_file = dex_cache->GetDexFile();
1753 target_method->dex_file = method->GetDeclaringClass()->GetDexCache()->GetDexFile();
1760 target_method->dex_file = method->GetDeclaringClass()->GetDexCache()->GetDexFile();
1831 const VerifiedMethod* CompilerDriver::GetVerifiedMethod(const DexFile* dex_file,
1833 MethodReference ref(dex_file, method_idx);
1863 const DexFile* dex_file,
1870 dex_file_(dex_file),
1966 static bool SkipClass(jobject class_loader, const DexFile& dex_file, mirror::Class* klass)
1970 if (&dex_file != &original_dex_file) {
1973 << dex_file.GetLocation() << " previously found in "
2008 bool CompilerDriver::RequiresConstructorBarrier(const DexFile& dex_file,
2010 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_idx);
2011 const uint8_t* class_data = dex_file.GetClassData(class_def);
2016 ClassDataItemIterator it(dex_file, class_data);
2039 const DexFile& dex_file = *manager_->GetDexFile();
2054 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index);
2060 soa.Self(), dex_file, false)));
2062 mirror::Class* klass = class_linker->ResolveType(dex_file, class_def.class_idx_, dex_cache,
2072 if (SkipClass(jclass_loader, dex_file, klass)) {
2081 const uint8_t* class_data = dex_file.GetClassData(class_def);
2086 ClassDataItemIterator it(dex_file, class_data);
2089 ArtField* field = class_linker->ResolveField(dex_file, it.GetMemberIndex(),
2104 ArtField* field = class_linker->ResolveField(dex_file, it.GetMemberIndex(),
2115 dex_file, it.GetMemberIndex(), dex_cache, class_loader, nullptr,
2124 dex_file, it.GetMemberIndex(), dex_cache, class_loader, nullptr,
2135 &dex_file,
2152 const DexFile& dex_file = *manager_->GetDexFile();
2157 dex_file,
2159 mirror::Class* klass = class_linker->ResolveType(dex_file, type_idx, dex_cache, class_loader);
2178 const DexFile& dex_file,
2188 ParallelCompilationManager context(class_linker, class_loader, this, &dex_file, dex_files,
2195 context.ForAll(0, dex_file.NumTypeIds(), &visitor, thread_count);
2200 context.ForAll(0, dex_file.NumClassDefs(), &visitor, thread_count);
2207 for (const DexFile* dex_file : dex_files) {
2208 CHECK(dex_file != nullptr);
2210 *dex_file,
2224 for (const DexFile* dex_file : dex_files) {
2225 CHECK(dex_file != nullptr);
2227 *dex_file,
2243 const DexFile& dex_file = *manager_->GetDexFile();
2244 if (!manager_->GetCompiler()->ShouldVerifyClassBasedOnProfile(dex_file, class_def_index)) {
2248 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index);
2249 const char* descriptor = dex_file.GetClassDescriptor(class_def);
2267 soa.Self(), dex_file, false)));
2270 &dex_file,
2283 } else if (!SkipClass(jclass_loader, dex_file, klass.Get())) {
2312 const DexFile& dex_file,
2319 ParallelCompilationManager context(class_linker, class_loader, this, &dex_file, dex_files,
2325 context.ForAll(0, dex_file.NumClassDefs(), &visitor, thread_count);
2335 const DexFile& dex_file = *manager_->GetDexFile();
2336 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index);
2337 const char* descriptor = dex_file.GetClassDescriptor(class_def);
2376 const DexFile& dex_file,
2383 ParallelCompilationManager context(class_linker, class_loader, this, &dex_file, dex_files,
2386 context.ForAll(0, dex_file.NumClassDefs(), &visitor, thread_count);
2396 const DexFile& dex_file = *manager_->GetDexFile();
2397 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index);
2398 const DexFile::TypeId& class_type_id = dex_file.GetTypeId(class_def.class_idx_);
2399 const char* descriptor = dex_file.StringDataByIdx(class_type_id.descriptor_idx_);
2408 if (klass.Get() != nullptr && !SkipClass(jclass_loader, dex_file, klass.Get())) {
2488 const DexFile& dex_file,
2501 ParallelCompilationManager context(class_linker, jni_class_loader, this, &dex_file, dex_files,
2508 context.ForAll(0, dex_file.NumClassDefs(), &visitor, init_thread_count);
2553 const DexFile* dex_file = dex_files[i];
2554 CHECK(dex_file != nullptr);
2555 InitializeClasses(class_loader, *dex_file, dex_files, timings);
2584 for (const DexFile* dex_file : dex_files) {
2585 CHECK(dex_file != nullptr);
2587 *dex_file,
2625 const DexFile& dex_file = *manager_->GetDexFile();
2626 const DexFile::ClassDef& class_def = dex_file.GetClassDef(class_def_index);
2629 ClassReference ref(&dex_file, class_def_index);
2635 const char* descriptor = dex_file.GetClassDescriptor(class_def);
2646 dex_cache = hs.NewHandle(class_linker->FindDexCache(soa.Self(), dex_file));
2647 } else if (SkipClass(jclass_loader, dex_file, klass.Get())) {
2653 const uint8_t* class_data = dex_file.GetClassData(class_def);
2666 GetDexToDexCompilationLevel(soa.Self(), *driver, jclass_loader, dex_file, class_def);
2668 ClassDataItemIterator it(dex_file, class_data);
2678 dex_file.StringByTypeIdx(class_def.class_idx_));
2693 method_idx, jclass_loader, dex_file, dex_to_dex_compilation_level,
2710 method_idx, jclass_loader, dex_file, dex_to_dex_compilation_level,
2722 const DexFile& dex_file,
2729 &dex_file, dex_files, thread_pool);
2731 context.ForAll(0, dex_file.NumClassDefs(), &visitor, thread_count);
2738 << PrettyMethod(method_ref.dex_method_index, *method_ref.dex_file);
2745 << PrettyMethod(method_ref.dex_method_index, *method_ref.dex_file);
2812 const DexFile& dex_file) const {
2813 const VerifiedMethod* verified_method = GetVerifiedMethod(&dex_file, method_idx);
2824 const char* descriptor = dex_file.GetClassDescriptor(dex_file.GetClassDef(class_def_idx));
2841 const DexFile* dex_file,
2845 requires_constructor_barrier_.emplace(ClassReference(dex_file, class_def_index), requires);
2849 const DexFile* dex_file,
2851 ClassReference class_ref(dex_file, class_def_index);
2860 const bool requires = RequiresConstructorBarrier(*dex_file, class_def_index);
2882 bool CompilerDriver::IsStringTypeIndex(uint16_t type_index, const DexFile* dex_file) {
2883 const char* type = dex_file->GetTypeDescriptor(dex_file->GetTypeId(type_index));
2887 bool CompilerDriver::IsStringInit(uint32_t method_index, const DexFile* dex_file, int32_t* offset) {
2888 DexFileMethodInliner* inliner = GetMethodInlinerMap()->GetMethodInliner(dex_file);