Lines Matching refs:dex
60 case dex::kTypeStringIdItem: in GetItemBaseSize()
61 return sizeof(dex::StringIdItem); in GetItemBaseSize()
62 case dex::kTypeTypeIdItem: in GetItemBaseSize()
63 return sizeof(dex::TypeIdItem); in GetItemBaseSize()
64 case dex::kTypeProtoIdItem: in GetItemBaseSize()
65 return sizeof(dex::ProtoIdItem); in GetItemBaseSize()
66 case dex::kTypeFieldIdItem: in GetItemBaseSize()
67 return sizeof(dex::FieldIdItem); in GetItemBaseSize()
68 case dex::kTypeMethodIdItem: in GetItemBaseSize()
69 return sizeof(dex::MethodIdItem); in GetItemBaseSize()
70 case dex::kTypeClassDefItem: in GetItemBaseSize()
71 return sizeof(dex::ClassDefItem); in GetItemBaseSize()
72 case dex::kTypeCallSiteIdItem: in GetItemBaseSize()
73 return sizeof(dex::CallSiteIdItem); in GetItemBaseSize()
74 case dex::kTypeMethodHandleItem: in GetItemBaseSize()
75 return sizeof(dex::MethodHandleItem); in GetItemBaseSize()
77 case dex::kTypeTypeList: in GetItemBaseSize()
79 case dex::kTypeAnnotationSetRefList: in GetItemBaseSize()
81 case dex::kTypeAnnotationSetItem: in GetItemBaseSize()
83 case dex::kTypeCodeItem: in GetItemBaseSize()
84 return sizeof(dex::CodeItem); // Variable-length. in GetItemBaseSize()
85 case dex::kTypeAnnotationsDirectoryItem: in GetItemBaseSize()
86 return sizeof(dex::AnnotationsDirectoryItem); // Variable-length. in GetItemBaseSize()
103 bool Init(const dex::MapItem& code_map_item) { in Init()
108 sizeof(dex::CodeItem))) { in Init()
165 const auto* code_item = source_.GetPointer<const dex::CodeItem>(); in GetNext()
182 if (!source_.GetArray<dex::TryItem>(code_item->tries_size)) in GetNext()
223 const auto* code_item = source.GetPointer<const dex::CodeItem>(); in GetCodeItemInsns()
246 const dex::Instruction* instr = nullptr; // null for unknown instructions.
252 const dex::Instruction* FindDalvikInstruction(uint8_t opcode) { in FindDalvikInstruction()
254 static const dex::Instruction* instruction_table[256]; in FindDalvikInstruction()
259 for (const dex::Instruction& instr : dex::kByteCode) { in FindDalvikInstruction()
284 const dex::Instruction* instr = FindDalvikInstruction(op); in ReadNext()
428 const dex::MapItem& map_item, in ItemReferenceReader()
524 const dex::MapItem& map_item, in ParseItemOffsets()
562 const dex::MapItem& annotations_directory_map_item, in ParseAnnotationsDirectoryItems()
571 sizeof(dex::AnnotationsDirectoryItem))) { in ParseAnnotationsDirectoryItems()
605 dex::AnnotationsDirectoryItem unsafe_annotations_directory_item; in ParseAnnotationsDirectoryItems()
610 sizeof(dex::FieldAnnotation), field_annotation_offsets) && in ParseAnnotationsDirectoryItems()
612 sizeof(dex::MethodAnnotation), in ParseAnnotationsDirectoryItems()
616 sizeof(dex::ParameterAnnotation), in ParseAnnotationsDirectoryItems()
693 const dex::MapItem& target_map_item, in ReadTargetIndex()
724 const dex::MapItem& target_map_item, in ReadMethodHandleFieldOrMethodId()
726 dex::MethodHandleType min_type, in ReadMethodHandleFieldOrMethodId()
727 dex::MethodHandleType max_type, in ReadMethodHandleFieldOrMethodId()
729 dex::MethodHandleItem method_handle_item = in ReadMethodHandleFieldOrMethodId()
730 image.read<dex::MethodHandleItem>(location); in ReadMethodHandleFieldOrMethodId()
734 static_assert(sizeof(decltype(dex::MethodHandleItem::method_handle_type)) <= in ReadMethodHandleFieldOrMethodId()
735 sizeof(dex::MethodHandleType), in ReadMethodHandleFieldOrMethodId()
738 dex::MethodHandleType method_handle_type = in ReadMethodHandleFieldOrMethodId()
739 static_cast<dex::MethodHandleType>(method_handle_item.method_handle_type); in ReadMethodHandleFieldOrMethodId()
741 if (method_handle_type >= dex::MethodHandleType::kMaxMethodHandleType) { in ReadMethodHandleFieldOrMethodId()
751 return ReadTargetIndex<decltype(dex::MethodHandleItem::field_or_method_id)>( in ReadMethodHandleFieldOrMethodId()
753 location + offsetof(dex::MethodHandleItem, field_or_method_id)); in ReadMethodHandleFieldOrMethodId()
800 static void WriteTargetIndex(const dex::MapItem& target_map_item, in WriteTargetIndex()
820 const dex::HeaderItem* header;
830 const dex::HeaderItem* header = source.GetPointer<dex::HeaderItem>(); in ReadDexHeader()
854 header->file_size < sizeof(dex::HeaderItem) || in ReadDexHeader()
855 header->map_off < sizeof(dex::HeaderItem)) { in ReadDexHeader()
1032 lo, hi, string_map_item_, sizeof(dex::StringIdItem), in MakeReadStringIdToStringData()
1033 offsetof(dex::StringIdItem, string_data_off), std::move(mapper)); in MakeReadStringIdToStringData()
1040 ReadTargetIndex<decltype(dex::TypeIdItem::descriptor_idx)>, image_, in MakeReadTypeIdToDescriptorStringId32()
1041 string_map_item_, sizeof(dex::StringIdItem)); in MakeReadTypeIdToDescriptorStringId32()
1043 lo, hi, type_map_item_, sizeof(dex::TypeIdItem), in MakeReadTypeIdToDescriptorStringId32()
1044 offsetof(dex::TypeIdItem, descriptor_idx), std::move(mapper)); in MakeReadTypeIdToDescriptorStringId32()
1050 ReadTargetIndex<decltype(dex::ProtoIdItem::shorty_idx)>, image_, in MakeReadProtoIdToShortyStringId32()
1051 string_map_item_, sizeof(dex::StringIdItem)); in MakeReadProtoIdToShortyStringId32()
1053 lo, hi, proto_map_item_, sizeof(dex::ProtoIdItem), in MakeReadProtoIdToShortyStringId32()
1054 offsetof(dex::ProtoIdItem, shorty_idx), std::move(mapper)); in MakeReadProtoIdToShortyStringId32()
1060 ReadTargetIndex<decltype(dex::ProtoIdItem::return_type_idx)>, image_, in MakeReadProtoIdToReturnTypeId32()
1061 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadProtoIdToReturnTypeId32()
1063 lo, hi, proto_map_item_, sizeof(dex::ProtoIdItem), in MakeReadProtoIdToReturnTypeId32()
1064 offsetof(dex::ProtoIdItem, return_type_idx), std::move(mapper)); in MakeReadProtoIdToReturnTypeId32()
1072 lo, hi, proto_map_item_, sizeof(dex::ProtoIdItem), in MakeReadProtoIdToParametersTypeList()
1073 offsetof(dex::ProtoIdItem, parameters_off), std::move(mapper)); in MakeReadProtoIdToParametersTypeList()
1080 ReadTargetIndex<decltype(dex::FieldIdItem::class_idx)>, image_, in MakeReadFieldToClassTypeId16()
1081 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadFieldToClassTypeId16()
1083 lo, hi, field_map_item_, sizeof(dex::FieldIdItem), in MakeReadFieldToClassTypeId16()
1084 offsetof(dex::FieldIdItem, class_idx), std::move(mapper)); in MakeReadFieldToClassTypeId16()
1091 base::BindRepeating(ReadTargetIndex<decltype(dex::FieldIdItem::type_idx)>, in MakeReadFieldToTypeId16()
1092 image_, type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadFieldToTypeId16()
1094 lo, hi, field_map_item_, sizeof(dex::FieldIdItem), in MakeReadFieldToTypeId16()
1095 offsetof(dex::FieldIdItem, type_idx), std::move(mapper)); in MakeReadFieldToTypeId16()
1102 base::BindRepeating(ReadTargetIndex<decltype(dex::FieldIdItem::name_idx)>, in MakeReadFieldToNameStringId32()
1103 image_, string_map_item_, sizeof(dex::StringIdItem)); in MakeReadFieldToNameStringId32()
1105 lo, hi, field_map_item_, sizeof(dex::FieldIdItem), in MakeReadFieldToNameStringId32()
1106 offsetof(dex::FieldIdItem, name_idx), std::move(mapper)); in MakeReadFieldToNameStringId32()
1112 ReadTargetIndex<decltype(dex::MethodIdItem::class_idx)>, image_, in MakeReadMethodIdToClassTypeId16()
1113 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadMethodIdToClassTypeId16()
1115 lo, hi, method_map_item_, sizeof(dex::MethodIdItem), in MakeReadMethodIdToClassTypeId16()
1116 offsetof(dex::MethodIdItem, class_idx), std::move(mapper)); in MakeReadMethodIdToClassTypeId16()
1123 ReadTargetIndex<decltype(dex::MethodIdItem::proto_idx)>, image_, in MakeReadMethodIdToProtoId16()
1124 proto_map_item_, sizeof(dex::ProtoIdItem)); in MakeReadMethodIdToProtoId16()
1126 lo, hi, method_map_item_, sizeof(dex::MethodIdItem), in MakeReadMethodIdToProtoId16()
1127 offsetof(dex::MethodIdItem, proto_idx), std::move(mapper)); in MakeReadMethodIdToProtoId16()
1133 ReadTargetIndex<decltype(dex::MethodIdItem::name_idx)>, image_, in MakeReadMethodIdToNameStringId32()
1134 string_map_item_, sizeof(dex::StringIdItem)); in MakeReadMethodIdToNameStringId32()
1136 lo, hi, method_map_item_, sizeof(dex::MethodIdItem), in MakeReadMethodIdToNameStringId32()
1137 offsetof(dex::MethodIdItem, name_idx), std::move(mapper)); in MakeReadMethodIdToNameStringId32()
1143 ReadTargetIndex<decltype(dex::ClassDefItem::superclass_idx)>, image_, in MakeReadClassDefToClassTypeId32()
1144 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadClassDefToClassTypeId32()
1146 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToClassTypeId32()
1147 offsetof(dex::ClassDefItem, class_idx), std::move(mapper)); in MakeReadClassDefToClassTypeId32()
1154 ReadTargetIndex<decltype(dex::ClassDefItem::superclass_idx)>, image_, in MakeReadClassDefToSuperClassTypeId32()
1155 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadClassDefToSuperClassTypeId32()
1157 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToSuperClassTypeId32()
1158 offsetof(dex::ClassDefItem, superclass_idx), std::move(mapper)); in MakeReadClassDefToSuperClassTypeId32()
1167 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToInterfacesTypeList()
1168 offsetof(dex::ClassDefItem, interfaces_off), std::move(mapper)); in MakeReadClassDefToInterfacesTypeList()
1175 ReadTargetIndex<decltype(dex::ClassDefItem::source_file_idx)>, image_, in MakeReadClassDefToSourceFileStringId32()
1176 string_map_item_, sizeof(dex::StringIdItem)); in MakeReadClassDefToSourceFileStringId32()
1178 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToSourceFileStringId32()
1179 offsetof(dex::ClassDefItem, source_file_idx), std::move(mapper)); in MakeReadClassDefToSourceFileStringId32()
1188 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToAnnotationDirectory()
1189 offsetof(dex::ClassDefItem, annotations_off), std::move(mapper)); in MakeReadClassDefToAnnotationDirectory()
1198 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToClassData()
1199 offsetof(dex::ClassDefItem, class_data_off), std::move(mapper)); in MakeReadClassDefToClassData()
1208 lo, hi, class_def_map_item_, sizeof(dex::ClassDefItem), in MakeReadClassDefToStaticValuesEncodedArray()
1209 offsetof(dex::ClassDefItem, static_values_off), std::move(mapper)); in MakeReadClassDefToStaticValuesEncodedArray()
1216 lo, hi, call_site_map_item_, sizeof(dex::CallSiteIdItem), in MakeReadCallSiteIdToCallSite32()
1217 offsetof(dex::CallSiteIdItem, call_site_off), std::move(mapper)); in MakeReadCallSiteIdToCallSite32()
1223 field_map_item_, sizeof(dex::FieldIdItem), in MakeReadMethodHandleToFieldId16()
1224 dex::MethodHandleType::kStaticPut, in MakeReadMethodHandleToFieldId16()
1225 dex::MethodHandleType::kInstanceGet); in MakeReadMethodHandleToFieldId16()
1231 lo, hi, method_handle_map_item_, sizeof(dex::MethodHandleItem), in MakeReadMethodHandleToFieldId16()
1232 offsetof(dex::MethodHandleItem, field_or_method_id), std::move(mapper), in MakeReadMethodHandleToFieldId16()
1239 method_map_item_, sizeof(dex::MethodIdItem), in MakeReadMethodHandleToMethodId16()
1240 dex::MethodHandleType::kInvokeStatic, in MakeReadMethodHandleToMethodId16()
1241 dex::MethodHandleType::kInvokeInterface); in MakeReadMethodHandleToMethodId16()
1247 lo, hi, method_handle_map_item_, sizeof(dex::MethodHandleItem), in MakeReadMethodHandleToMethodId16()
1248 offsetof(dex::MethodHandleItem, field_or_method_id), std::move(mapper), in MakeReadMethodHandleToMethodId16()
1256 base::BindRepeating(ReadTargetIndex<decltype(dex::TypeItem::type_idx)>, in MakeReadTypeListToTypeId16()
1257 image_, type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadTypeListToTypeId16()
1259 lo, hi, offsetof(dex::TypeItem, type_idx), type_list_offsets_, in MakeReadTypeListToTypeId16()
1268 lo, hi, offsetof(dex::AnnotationOffItem, annotation_off), in MakeReadAnnotationSetToAnnotation()
1278 lo, hi, offsetof(dex::AnnotationSetRefItem, annotations_off), in MakeReadAnnotationSetRefListToAnnotationSet()
1288 lo, hi, offsetof(dex::AnnotationsDirectoryItem, class_annotations_off), in MakeReadAnnotationsDirectoryToClassAnnotationSet()
1296 ReadTargetIndex<decltype(dex::FieldAnnotation::field_idx)>, image_, in MakeReadAnnotationsDirectoryToFieldId32()
1297 field_map_item_, sizeof(dex::FieldIdItem)); in MakeReadAnnotationsDirectoryToFieldId32()
1299 lo, hi, offsetof(dex::FieldAnnotation, field_idx), in MakeReadAnnotationsDirectoryToFieldId32()
1309 lo, hi, offsetof(dex::FieldAnnotation, annotations_off), in MakeReadAnnotationsDirectoryToFieldAnnotationSet()
1317 ReadTargetIndex<decltype(dex::MethodAnnotation::method_idx)>, image_, in MakeReadAnnotationsDirectoryToMethodId32()
1318 method_map_item_, sizeof(dex::MethodIdItem)); in MakeReadAnnotationsDirectoryToMethodId32()
1320 lo, hi, offsetof(dex::MethodAnnotation, method_idx), in MakeReadAnnotationsDirectoryToMethodId32()
1331 lo, hi, offsetof(dex::MethodAnnotation, annotations_off), in MakeReadAnnotationsDirectoryToMethodAnnotationSet()
1340 ReadTargetIndex<decltype(dex::ParameterAnnotation::method_idx)>, image_, in MakeReadAnnotationsDirectoryToParameterMethodId32()
1341 method_map_item_, sizeof(dex::MethodIdItem)); in MakeReadAnnotationsDirectoryToParameterMethodId32()
1343 lo, hi, offsetof(dex::ParameterAnnotation, method_idx), in MakeReadAnnotationsDirectoryToParameterMethodId32()
1355 lo, hi, offsetof(dex::ParameterAnnotation, annotations_off), in MakeReadAnnotationsDirectoryToParameterAnnotationSetRef()
1369 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToStringId16()
1378 sizeof(dex::StringIdItem)); in MakeReadCodeToStringId16()
1388 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToStringId32()
1397 sizeof(dex::StringIdItem)); in MakeReadCodeToStringId32()
1407 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToTypeId16()
1421 type_map_item_, sizeof(dex::TypeIdItem)); in MakeReadCodeToTypeId16()
1431 if (value.instr->format == dex::FormatId::c) { in MakeReadCodeToProtoId16()
1446 proto_map_item_, sizeof(dex::ProtoIdItem)); in MakeReadCodeToProtoId16()
1456 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToCallSiteId16()
1467 call_site_map_item_, sizeof(dex::CallSiteIdItem)); in MakeReadCodeToCallSiteId16()
1477 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToMethodHandle16()
1486 sizeof(dex::MethodHandleItem)); in MakeReadCodeToMethodHandle16()
1496 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToFieldId16()
1505 field_map_item_, sizeof(dex::FieldIdItem)); in MakeReadCodeToFieldId16()
1515 if (value.instr->format == dex::FormatId::c && in MakeReadCodeToMethodId16()
1527 sizeof(dex::MethodIdItem)); in MakeReadCodeToMethodId16()
1537 if (value.instr->format == dex::FormatId::t && in MakeReadCodeToRelCode8()
1565 if (value.instr->format == dex::FormatId::t && in MakeReadCodeToRelCode16()
1595 if (value.instr->format == dex::FormatId::t && in MakeReadCodeToRelCode32()
1629 WriteTargetIndex<uint16_t>, string_map_item_, sizeof(dex::StringIdItem)); in MakeWriteStringId16()
1636 WriteTargetIndex<uint32_t>, string_map_item_, sizeof(dex::StringIdItem)); in MakeWriteStringId32()
1643 sizeof(dex::TypeIdItem)); in MakeWriteTypeId16()
1650 sizeof(dex::TypeIdItem)); in MakeWriteTypeId32()
1657 sizeof(dex::ProtoIdItem)); in MakeWriteProtoId16()
1664 sizeof(dex::FieldIdItem)); in MakeWriteFieldId16()
1671 sizeof(dex::FieldIdItem)); in MakeWriteFieldId32()
1678 WriteTargetIndex<uint16_t>, method_map_item_, sizeof(dex::MethodIdItem)); in MakeWriteMethodId16()
1685 WriteTargetIndex<uint32_t>, method_map_item_, sizeof(dex::MethodIdItem)); in MakeWriteMethodId32()
1693 sizeof(dex::CallSiteIdItem)); in MakeWriteCallSiteId16()
1701 sizeof(dex::MethodHandleItem)); in MakeWriteMethodHandle16()
1790 offsetof(dex::MapList, list) == sizeof(decltype(dex::MapList::size)), in ParseHeader()
1793 decltype(dex::MapList::size) list_size = 0; in ParseHeader()
1794 if (!source.GetValue(&list_size) || list_size > dex::kMaxItemListSize) in ParseHeader()
1796 const auto* item_list = source.GetArray<const dex::MapItem>(list_size); in ParseHeader()
1803 const dex::MapItem* item = &item_list[i]; in ParseHeader()
1814 if (map_item_map_.count(dex::kTypeStringIdItem)) { in ParseHeader()
1815 string_map_item_ = *map_item_map_[dex::kTypeStringIdItem]; in ParseHeader()
1817 if (map_item_map_.count(dex::kTypeTypeIdItem)) { in ParseHeader()
1818 type_map_item_ = *map_item_map_[dex::kTypeTypeIdItem]; in ParseHeader()
1820 if (map_item_map_.count(dex::kTypeProtoIdItem)) { in ParseHeader()
1821 proto_map_item_ = *map_item_map_[dex::kTypeProtoIdItem]; in ParseHeader()
1823 if (map_item_map_.count(dex::kTypeFieldIdItem)) { in ParseHeader()
1824 field_map_item_ = *map_item_map_[dex::kTypeFieldIdItem]; in ParseHeader()
1826 if (map_item_map_.count(dex::kTypeMethodIdItem)) { in ParseHeader()
1827 method_map_item_ = *map_item_map_[dex::kTypeMethodIdItem]; in ParseHeader()
1829 if (map_item_map_.count(dex::kTypeClassDefItem)) { in ParseHeader()
1830 class_def_map_item_ = *map_item_map_[dex::kTypeClassDefItem]; in ParseHeader()
1832 if (map_item_map_.count(dex::kTypeCallSiteIdItem)) { in ParseHeader()
1833 call_site_map_item_ = *map_item_map_[dex::kTypeCallSiteIdItem]; in ParseHeader()
1835 if (map_item_map_.count(dex::kTypeMethodHandleItem)) { in ParseHeader()
1836 method_handle_map_item_ = *map_item_map_[dex::kTypeMethodHandleItem]; in ParseHeader()
1838 if (map_item_map_.count(dex::kTypeTypeList)) { in ParseHeader()
1839 type_list_map_item_ = *map_item_map_[dex::kTypeTypeList]; in ParseHeader()
1841 if (map_item_map_.count(dex::kTypeAnnotationSetRefList)) { in ParseHeader()
1843 *map_item_map_[dex::kTypeAnnotationSetRefList]; in ParseHeader()
1845 if (map_item_map_.count(dex::kTypeAnnotationSetItem)) { in ParseHeader()
1846 annotation_set_map_item_ = *map_item_map_[dex::kTypeAnnotationSetItem]; in ParseHeader()
1848 if (map_item_map_.count(dex::kTypeCodeItem)) { in ParseHeader()
1849 code_map_item_ = *map_item_map_[dex::kTypeCodeItem]; in ParseHeader()
1851 if (map_item_map_.count(dex::kTypeAnnotationsDirectoryItem)) { in ParseHeader()
1853 *map_item_map_[dex::kTypeAnnotationsDirectoryItem]; in ParseHeader()
1860 if (!(ParseItemOffsets(image_, type_list_map_item_, sizeof(dex::TypeItem), in ParseHeader()
1863 sizeof(dex::AnnotationSetRefItem), in ParseHeader()
1866 sizeof(dex::AnnotationOffItem), in ParseHeader()