Home | History | Annotate | Download | only in runtime

Lines Matching defs:DexFile

64 const uint8_t DexFile::kDexMagic[] = { 'd', 'e', 'x', '\n' };
65 const uint8_t DexFile::kDexMagicVersions[DexFile::kNumDexVersions][DexFile::kDexVersionLen] = {
72 bool DexFile::GetChecksum(const char* filename, uint32_t* checksum, std::string* error_msg) {
81 if (DexFile::IsMultiDexLocation(filename)) {
111 std::unique_ptr<const DexFile> dex_file(
112 DexFile::OpenFile(fd.release(), filename, false, error_msg));
123 bool DexFile::Open(const char* filename, const char* location, std::string* error_msg,
124 std::vector<std::unique_ptr<const DexFile>>* dex_files) {
126 DCHECK(dex_files != nullptr) << "DexFile::Open: out-param is nullptr";
134 return DexFile::OpenZip(fd.release(), location, error_msg, dex_files);
137 std::unique_ptr<const DexFile> dex_file(DexFile::OpenFile(fd.release(), location, true,
156 std::unique_ptr<ZipEntry> zip_entry(zip_archive->Find(DexFile::kClassesDex, &error_msg));
160 bool DexFile::MaybeDex(const char* filename) {
175 int DexFile::GetPermissions() const {
183 bool DexFile::IsReadOnly() const {
187 bool DexFile::EnableWrite() const {
196 bool DexFile::DisableWrite() const {
205 std::unique_ptr<const DexFile> DexFile::Open(const uint8_t* base, size_t size,
212 std::unique_ptr<const DexFile> dex_file = OpenMemory(base,
230 std::unique_ptr<const DexFile> DexFile::OpenFile(int fd, const char* location, bool verify,
240 *error_msg = StringPrintf("DexFile: fstat '%s' failed: %s", location, strerror(errno));
262 if (map->Size() < sizeof(DexFile::Header)) {
264 "DexFile: failed to open dex file '%s' that is too short to have a header", location);
270 std::unique_ptr<const DexFile> dex_file(OpenMemory(location, dex_header->checksum_, map.release(),
286 const char* DexFile::kClassesDex = "classes.dex";
288 bool DexFile::OpenZip(int fd, const std::string& location, std::string* error_msg,
289 std::vector<std::unique_ptr<const DexFile>>* dex_files) {
291 DCHECK(dex_files != nullptr) << "DexFile::OpenZip: out-param is nullptr";
297 return DexFile::OpenFromZip(*zip_archive, location, error_msg, dex_files);
300 std::unique_ptr<const DexFile> DexFile::OpenMemory(const std::string& location,
313 std::unique_ptr<const DexFile> DexFile::Open(const ZipArchive& zip_archive, const char* entry_name,
330 std::unique_ptr<const DexFile> dex_file(OpenMemory(location, zip_entry->GetCrc32(), map.release(),
359 bool DexFile::OpenFromZip(const ZipArchive& zip_archive, const std::string& location,
361 std::vector<std::unique_ptr<const DexFile>>* dex_files) {
363 DCHECK(dex_files != nullptr) << "DexFile::OpenFromZip: out-param is nullptr";
365 std::unique_ptr<const DexFile> dex_file(Open(zip_archive, kClassesDex, location, error_msg,
381 std::unique_ptr<const DexFile> next_dex_file(Open(zip_archive, name.c_str(), fake_location,
409 std::unique_ptr<const DexFile> DexFile::OpenMemory(const uint8_t* base,
417 std::unique_ptr<DexFile> dex_file(
418 new DexFile(base, size, location, location_checksum, mem_map, oat_dex_file));
422 return std::unique_ptr<const DexFile>(dex_file.release());
425 DexFile::DexFile(const uint8_t* base, size_t size,
457 DexFile::~DexFile() {
464 bool DexFile::Init(std::string* error_msg) {
471 bool DexFile::CheckMagicAndVersion(std::string* error_msg) const {
495 bool DexFile::IsMagicValid(const uint8_t* magic) {
499 bool DexFile::IsVersionValid(const uint8_t* magic) {
509 uint32_t DexFile::Header::GetVersion() const {
514 const DexFile::ClassDef* DexFile::FindClassDef(const char* descriptor, size_t hash) const {
518 return (class_def_idx != DexFile::kDexNoIndex) ? &GetClassDef(class_def_idx) : nullptr;
539 const DexFile::ClassDef* DexFile::FindClassDef(uint16_t type_idx) const {
550 const DexFile::FieldId* DexFile::FindFieldId(const DexFile::TypeId& declaring_klass,
551 const DexFile::StringId& name,
552 const DexFile::TypeId& type) const {
561 const DexFile::FieldId& field = GetFieldId(mid);
585 const DexFile::MethodId* DexFile::FindMethodId(const DexFile::TypeId& declaring_klass,
586 const DexFile::StringId& name,
587 const DexFile::ProtoId& signature) const {
596 const DexFile::MethodId& method = GetMethodId(mid);
620 const DexFile::StringId* DexFile::FindStringId(const char* string) const {
625 const DexFile::StringId& str_id = GetStringId(mid);
639 const DexFile::TypeId* DexFile::FindTypeId(const char* string) const {
645 const DexFile::StringId& str_id = GetStringId(type_id.descriptor_idx_);
659 const DexFile::StringId* DexFile::FindStringId(const uint16_t* string, size_t length) const {
664 const DexFile::StringId& str_id = GetStringId(mid);
678 const DexFile::TypeId* DexFile::FindTypeId(uint32_t string_idx) const {
695 const DexFile::ProtoId* DexFile::FindProtoId(uint16_t return_type_idx,
702 const DexFile::ProtoId& proto = GetProtoId(mid);
731 void DexFile::CreateTypeLookupTable(uint8_t* storage) const {
736 bool DexFile::CreateTypeList(const StringPiece& signature, uint16_t* return_type_idx,
770 const DexFile::TypeId* type_id = FindTypeId(descriptor.c_str());
785 const Signature DexFile::CreateSignature(const StringPiece& signature) const {
799 int32_t DexFile::GetLineNumFromPC(ArtMethod* method, uint32_t rel_pc) const {
815 int32_t DexFile::FindTryItem(const CodeItem &code_item, uint32_t address) {
823 const art::DexFile::TryItem* ti = GetTryItems(code_item, mid);
839 int32_t DexFile::FindCatchHandlerOffset(const CodeItem &code_item, uint32_t address) {
844 return DexFile::GetTryItems(code_item, try_item)->handler_off_;
848 bool DexFile::DecodeDebugLocalInfo(const CodeItem* code_item, bool is_static, uint32_t method_idx,
999 bool DexFile::DecodeDebugPositionInfo(const CodeItem* code_item, DexDebugNewPositionCb position_cb,
1069 bool DexFile::LineNumForPcCb(void* raw_context, const PositionInfo& entry) {
1085 bool DexFile::IsMultiDexLocation(const char* location) {
1089 std::string DexFile::GetMultiDexClassesDexName(size_t index) {
1097 std::string DexFile::GetMultiDexLocation(size_t index, const char* dex_location) {
1105 std::string DexFile::GetDexCanonicalLocation(const char* dex_location) {
1169 if (expected == DexFile::kDexVisibilityRuntime) {
1172 return actual == DexFile::kDexVisibilityRuntime || actual == DexFile::kDexVisibilityBuild;
1178 const DexFile::AnnotationSetItem* DexFile::FindAnnotationSetForField(ArtField* field) const {
1198 mirror::Object* DexFile::GetAnnotationForField(ArtField* field,
1210 mirror::ObjectArray<mirror::Object>* DexFile::GetAnnotationsForField(ArtField* field) const {
1217 mirror::ObjectArray<mirror::String>* DexFile::GetSignatureAnnotationForField(ArtField* field)
1228 bool DexFile::IsFieldAnnotationPresent(ArtField* field, Handle<mirror::Class> annotation_class)
1241 const DexFile::AnnotationSetItem* DexFile::FindAnnotationSetForMethod(ArtMethod* method) const {
1261 const DexFile::ParameterAnnotationsItem* DexFile::FindAnnotationsItemForMethod(ArtMethod* method)
1282 mirror::Object* DexFile::GetAnnotationDefaultValue(ArtMethod* method) const {
1321 mirror::Object* DexFile::GetAnnotationForMethod(ArtMethod* method,
1333 mirror::ObjectArray<mirror::Object>* DexFile::GetAnnotationsForMethod(ArtMethod* method) const {
1340 mirror::ObjectArray<mirror::Class>* DexFile::GetExceptionTypesForMethod(ArtMethod* method) const {
1350 mirror::ObjectArray<mirror::Object>* DexFile::GetParameterAnnotations(ArtMethod* method) const {
1366 mirror::ObjectArray<mirror::String>* DexFile::GetSignatureAnnotationForMethod(ArtMethod* method)
1377 bool DexFile::IsMethodAnnotationPresent(ArtMethod* method, Handle<mirror::Class> annotation_class)
1390 const DexFile::AnnotationSetItem* DexFile::FindAnnotationSetForClass(Handle<mirror::Class> klass)
1399 mirror::Object* DexFile::GetAnnotationForClass(Handle<mirror::Class> klass,
1409 mirror::ObjectArray<mirror::Object>* DexFile::GetAnnotationsForClass(Handle<mirror::Class> klass)
1415 mirror::ObjectArray<mirror::Class>* DexFile::GetDeclaredClasses(Handle<mirror::Class> klass) const {
1440 mirror::Class* DexFile::GetDeclaringClass(Handle<mirror::Class> klass) const {
1461 mirror::Class* DexFile::GetEnclosingClass(Handle<mirror::Class> klass) const {
1501 mirror::Object* DexFile::GetEnclosingMethod(Handle<mirror::Class> klass) const {
1515 bool DexFile::GetInnerClass(Handle<mirror::Class> klass, mirror::String** name) const {
1545 bool DexFile::GetInnerClassFlags(Handle<mirror::Class> klass, uint32_t* flags) const {
1574 mirror::ObjectArray<mirror::String>* DexFile::GetSignatureAnnotationForClass(
1583 bool DexFile::IsClassAnnotationPresent(Handle<mirror::Class> klass,
1594 mirror::Object* DexFile::CreateAnnotationMember(Handle<mirror::Class> klass,
1650 const DexFile::AnnotationItem* DexFile::GetAnnotationItemFromAnnotationSet(
1678 mirror::Object* DexFile::GetAnnotationObjectFromAnnotationSet(Handle<mirror::Class> klass,
1690 mirror::Object* DexFile::GetAnnotationValue(Handle<mirror::Class> klass,
1708 mirror::ObjectArray<mirror::String>* DexFile::GetSignatureValue(Handle<mirror::Class> klass,
1730 mirror::ObjectArray<mirror::Class>* DexFile::GetThrowsValue(Handle<mirror::Class> klass,
1752 mirror::ObjectArray<mirror::Object>* DexFile::ProcessAnnotationSet(Handle<mirror::Class> klass,
1806 mirror::ObjectArray<mirror::Object>* DexFile::ProcessAnnotationSetRefList(
1836 bool DexFile::ProcessAnnotationValue(Handle<mirror::Class> klass, const uint8_t** annotation_ptr,
1838 DexFile::AnnotationResultStyle result_style) const {
2099 mirror::Object* DexFile::ProcessEncodedAnnotation(Handle<mirror::Class> klass,
2158 const DexFile::AnnotationItem* DexFile::SearchAnnotationSet(const AnnotationSetItem* annotation_set,
2177 const uint8_t* DexFile::SearchEncodedAnnotation(const uint8_t* annotation, const char* name) const {
2193 bool DexFile::SkipAnnotationValue(const uint8_t** annotation_ptr) const {
2252 std::ostream& operator<<(std::ostream& os, const DexFile& dex_file) {
2253 os << StringPrintf("[DexFile: %s dex-checksum=%08x location-checksum=%08x %p-%p]",
2265 const DexFile::TypeList* params = dex_file_->GetProtoParameters(*proto_id_);
2289 const DexFile::TypeList* params = dex_file_->GetProtoParameters(*proto_id_);
2336 const DexFile& dex_file,
2337 const DexFile::ClassDef& class_def)
2348 const DexFile& dex_file,
2352 const DexFile::ClassDef& class_def)
2364 const DexFile& dex_file,
2368 const DexFile::ClassDef& class_def,
2481 CatchHandlerIterator::CatchHandlerIterator(const DexFile::CodeItem& code_item, uint32_t address) {
2490 const DexFile::TryItem* tries = DexFile::GetTryItems(code_item, 0);
2501 offset = DexFile::FindCatchHandlerOffset(code_item, address);
2506 CatchHandlerIterator::CatchHandlerIterator(const DexFile::CodeItem& code_item,
2507 const DexFile::TryItem& try_item) {
2512 void CatchHandlerIterator::Init(const DexFile::CodeItem& code_item,
2515 Init(DexFile::GetCatchHandlerData(code_item, offset));
2550 handler_.type_idx_ = DexFile::kDexNoIndex16;