Lines Matching refs:DexFile
58 struct DexFile::AnnotationValue {
85 const DexFile& GetDexFile() const REQUIRES_SHARED(Locks::mutator_lock_) { in GetDexFile()
120 const DexFile& dex_file, in ClassData()
131 const DexFile& dex_file_;
143 if (expected == DexFile::kDexVisibilityRuntime) { in IsVisibilityCompatible()
145 return actual == DexFile::kDexVisibilityRuntime || actual == DexFile::kDexVisibilityBuild; in IsVisibilityCompatible()
151 static const AnnotationSetItem* FindAnnotationSetForField(const DexFile& dex_file, in FindAnnotationSetForField()
183 const AnnotationItem* SearchAnnotationSet(const DexFile& dex_file, in SearchAnnotationSet()
205 bool SkipAnnotationValue(const DexFile& dex_file, const uint8_t** annotation_ptr) in SkipAnnotationValue()
209 uint8_t value_type = header_byte & DexFile::kDexAnnotationValueTypeMask; in SkipAnnotationValue()
210 uint8_t value_arg = header_byte >> DexFile::kDexAnnotationValueArgShift; in SkipAnnotationValue()
214 case DexFile::kDexAnnotationByte: in SkipAnnotationValue()
215 case DexFile::kDexAnnotationShort: in SkipAnnotationValue()
216 case DexFile::kDexAnnotationChar: in SkipAnnotationValue()
217 case DexFile::kDexAnnotationInt: in SkipAnnotationValue()
218 case DexFile::kDexAnnotationLong: in SkipAnnotationValue()
219 case DexFile::kDexAnnotationFloat: in SkipAnnotationValue()
220 case DexFile::kDexAnnotationDouble: in SkipAnnotationValue()
221 case DexFile::kDexAnnotationString: in SkipAnnotationValue()
222 case DexFile::kDexAnnotationType: in SkipAnnotationValue()
223 case DexFile::kDexAnnotationMethod: in SkipAnnotationValue()
224 case DexFile::kDexAnnotationField: in SkipAnnotationValue()
225 case DexFile::kDexAnnotationEnum: in SkipAnnotationValue()
227 case DexFile::kDexAnnotationArray: in SkipAnnotationValue()
238 case DexFile::kDexAnnotationAnnotation: in SkipAnnotationValue()
251 case DexFile::kDexAnnotationBoolean: in SkipAnnotationValue()
252 case DexFile::kDexAnnotationNull: in SkipAnnotationValue()
265 const uint8_t* SearchEncodedAnnotation(const DexFile& dex_file, in SearchEncodedAnnotation()
285 static const AnnotationSetItem* FindAnnotationSetForMethod(const DexFile& dex_file, in FindAnnotationSetForMethod()
317 const DexFile* dex_file = method->GetDexFile(); in FindAnnotationsItemForMethod()
340 const DexFile& dex_file = klass.GetDexFile(); in FindAnnotationSetForClass()
417 DexFile::AnnotationValue* annotation_value, in ProcessAnnotationValue()
419 DexFile::AnnotationResultStyle result_style) in ProcessAnnotationValue()
421 const DexFile& dex_file = klass.GetDexFile(); in ProcessAnnotationValue()
428 uint8_t value_type = header_byte & DexFile::kDexAnnotationValueTypeMask; in ProcessAnnotationValue()
429 uint8_t value_arg = header_byte >> DexFile::kDexAnnotationValueArgShift; in ProcessAnnotationValue()
434 case DexFile::kDexAnnotationByte: in ProcessAnnotationValue()
436 static_cast<int8_t>(DexFile::ReadSignedInt(annotation, value_arg))); in ProcessAnnotationValue()
439 case DexFile::kDexAnnotationShort: in ProcessAnnotationValue()
441 static_cast<int16_t>(DexFile::ReadSignedInt(annotation, value_arg))); in ProcessAnnotationValue()
444 case DexFile::kDexAnnotationChar: in ProcessAnnotationValue()
446 static_cast<uint16_t>(DexFile::ReadUnsignedInt(annotation, value_arg, false))); in ProcessAnnotationValue()
449 case DexFile::kDexAnnotationInt: in ProcessAnnotationValue()
450 annotation_value->value_.SetI(DexFile::ReadSignedInt(annotation, value_arg)); in ProcessAnnotationValue()
453 case DexFile::kDexAnnotationLong: in ProcessAnnotationValue()
454 annotation_value->value_.SetJ(DexFile::ReadSignedLong(annotation, value_arg)); in ProcessAnnotationValue()
457 case DexFile::kDexAnnotationFloat: in ProcessAnnotationValue()
458 annotation_value->value_.SetI(DexFile::ReadUnsignedInt(annotation, value_arg, true)); in ProcessAnnotationValue()
461 case DexFile::kDexAnnotationDouble: in ProcessAnnotationValue()
462 annotation_value->value_.SetJ(DexFile::ReadUnsignedLong(annotation, value_arg, true)); in ProcessAnnotationValue()
465 case DexFile::kDexAnnotationBoolean: in ProcessAnnotationValue()
470 case DexFile::kDexAnnotationString: { in ProcessAnnotationValue()
471 uint32_t index = DexFile::ReadUnsignedInt(annotation, value_arg, false); in ProcessAnnotationValue()
472 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
485 case DexFile::kDexAnnotationType: { in ProcessAnnotationValue()
486 uint32_t index = DexFile::ReadUnsignedInt(annotation, value_arg, false); in ProcessAnnotationValue()
487 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
499 if (result_style == DexFile::kAllObjects) { in ProcessAnnotationValue()
511 case DexFile::kDexAnnotationMethod: { in ProcessAnnotationValue()
512 uint32_t index = DexFile::ReadUnsignedInt(annotation, value_arg, false); in ProcessAnnotationValue()
513 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
550 case DexFile::kDexAnnotationField: { in ProcessAnnotationValue()
551 uint32_t index = DexFile::ReadUnsignedInt(annotation, value_arg, false); in ProcessAnnotationValue()
552 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
578 case DexFile::kDexAnnotationEnum: { in ProcessAnnotationValue()
579 uint32_t index = DexFile::ReadUnsignedInt(annotation, value_arg, false); in ProcessAnnotationValue()
580 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
600 case DexFile::kDexAnnotationArray: in ProcessAnnotationValue()
601 if (result_style == DexFile::kAllRaw || array_class == nullptr) { in ProcessAnnotationValue()
615 DexFile::AnnotationValue new_annotation_value; in ProcessAnnotationValue()
621 DexFile::kPrimitivesOrObjects)) { in ProcessAnnotationValue()
630 case DexFile::kDexAnnotationByte: in ProcessAnnotationValue()
634 case DexFile::kDexAnnotationShort: in ProcessAnnotationValue()
638 case DexFile::kDexAnnotationChar: in ProcessAnnotationValue()
642 case DexFile::kDexAnnotationInt: in ProcessAnnotationValue()
646 case DexFile::kDexAnnotationLong: in ProcessAnnotationValue()
650 case DexFile::kDexAnnotationFloat: in ProcessAnnotationValue()
654 case DexFile::kDexAnnotationDouble: in ProcessAnnotationValue()
658 case DexFile::kDexAnnotationBoolean: in ProcessAnnotationValue()
673 case DexFile::kDexAnnotationAnnotation: in ProcessAnnotationValue()
674 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
684 case DexFile::kDexAnnotationNull: in ProcessAnnotationValue()
685 if (result_style == DexFile::kAllRaw) { in ProcessAnnotationValue()
701 if (result_style == DexFile::kAllObjects && primitive_type != Primitive::kPrimVoid) { in ProcessAnnotationValue()
716 const DexFile& dex_file = klass.GetDexFile(); in CreateAnnotationMember()
733 DexFile::AnnotationValue annotation_value; in CreateAnnotationMember()
738 DexFile::kAllObjects)) { in CreateAnnotationMember()
787 const DexFile& dex_file = klass.GetDexFile(); in GetAnnotationItemFromAnnotationSet()
838 const DexFile& dex_file = klass.GetDexFile(); in GetAnnotationValue()
844 DexFile::AnnotationValue annotation_value; in GetAnnotationValue()
850 DexFile::kAllObjects) in GetAnnotationValue()
855 DexFile::kAllObjects); in GetAnnotationValue()
869 const DexFile& dex_file = klass.GetDexFile(); in GetSignatureValue()
873 DexFile::kDexVisibilitySystem); in GetSignatureValue()
882 DexFile::kDexAnnotationArray); in GetSignatureValue()
892 const DexFile& dex_file = klass.GetDexFile(); in GetThrowsValue()
895 DexFile::kDexVisibilitySystem); in GetThrowsValue()
905 DexFile::kDexAnnotationArray); in GetThrowsValue()
917 const DexFile& dex_file = klass.GetDexFile(); in ProcessAnnotationSet()
975 const DexFile& dex_file = klass.GetDexFile(); in ProcessAnnotationSetRefList()
997 DexFile::kDexVisibilityRuntime); in ProcessAnnotationSetRefList()
1019 DexFile::kDexVisibilityRuntime, in GetAnnotationForField()
1027 return ProcessAnnotationSet(field_class, annotation_set, DexFile::kDexVisibilityRuntime); in GetAnnotationsForField()
1048 field_class, annotation_set, DexFile::kDexVisibilityRuntime, annotation_class); in IsFieldAnnotationPresent()
1054 const DexFile* dex_file = &klass.GetDexFile(); in GetAnnotationDefaultValue()
1066 "Ldalvik/annotation/AnnotationDefault;", DexFile::kDexVisibilitySystem); in GetAnnotationDefaultValue()
1076 if ((header_byte & DexFile::kDexAnnotationValueTypeMask) != DexFile::kDexAnnotationAnnotation) { in GetAnnotationDefaultValue()
1083 DexFile::AnnotationValue annotation_value; in GetAnnotationDefaultValue()
1090 DexFile::kAllObjects)) { in GetAnnotationDefaultValue()
1103 DexFile::kDexVisibilityRuntime, annotation_class); in GetAnnotationForMethod()
1110 DexFile::kDexVisibilityRuntime); in GetAnnotationsForMethod()
1122 const DexFile* dex_file = method->GetDexFile(); in GetParameterAnnotations()
1138 const DexFile* dex_file = method->GetDexFile(); in GetNumberOfAnnotatedMethodParameters()
1155 const DexFile* dex_file = method->GetDexFile(); in GetAnnotationForMethodParameter()
1176 DexFile::kDexVisibilityRuntime, in GetAnnotationForMethodParameter()
1190 const DexFile* dex_file = method->GetDexFile(); in GetParametersMetadataForMethod()
1195 DexFile::kDexVisibilitySystem); in GetParametersMetadataForMethod()
1214 DexFile::kDexAnnotationArray)); in GetParametersMetadataForMethod()
1227 DexFile::kDexAnnotationArray)); in GetParametersMetadataForMethod()
1272 static bool IsMethodBuildAnnotationPresent(const DexFile& dex_file, in IsMethodBuildAnnotationPresent()
1278 if (!IsVisibilityCompatible(annotation_item->visibility_, DexFile::kDexVisibilityBuild)) { in IsMethodBuildAnnotationPresent()
1292 uint32_t GetNativeMethodAnnotationAccessFlags(const DexFile& dex_file, in GetNativeMethodAnnotationAccessFlags()
1319 bool FieldIsReachabilitySensitive(const DexFile& dex_file, in FieldIsReachabilitySensitive()
1329 "Ldalvik/annotation/optimization/ReachabilitySensitive;", DexFile::kDexVisibilityRuntime); in FieldIsReachabilitySensitive()
1334 bool MethodIsReachabilitySensitive(const DexFile& dex_file, in MethodIsReachabilitySensitive()
1344 "Ldalvik/annotation/optimization/ReachabilitySensitive;", DexFile::kDexVisibilityRuntime); in MethodIsReachabilitySensitive()
1348 static bool MethodIsReachabilitySensitive(const DexFile& dex_file, in MethodIsReachabilitySensitive()
1359 bool MethodContainsRSensitiveAccess(const DexFile& dex_file, in MethodContainsRSensitiveAccess()
1485 bool HasDeadReferenceSafeAnnotation(const DexFile& dex_file, in HasDeadReferenceSafeAnnotation()
1500 "Ldalvik/annotation/optimization/DeadReferenceSafe;", DexFile::kDexVisibilityRuntime); in HasDeadReferenceSafeAnnotation()
1513 DexFile::kDexVisibilityRuntime, in GetAnnotationForClass()
1520 return ProcessAnnotationSet(data, annotation_set, DexFile::kDexVisibilityRuntime); in GetAnnotationsForClass()
1531 DexFile::kDexVisibilitySystem); in GetDeclaredClasses()
1541 DexFile::kDexAnnotationArray); in GetDeclaredClasses()
1556 DexFile::kDexVisibilitySystem); in GetDeclaringClass()
1564 DexFile::kDexAnnotationType); in GetDeclaringClass()
1585 DexFile::kDexVisibilitySystem); in GetEnclosingClass()
1594 DexFile::AnnotationValue annotation_value; in GetEnclosingClass()
1599 DexFile::kAllRaw)) { in GetEnclosingClass()
1602 if (annotation_value.type_ != DexFile::kDexAnnotationMethod) { in GetEnclosingClass()
1626 DexFile::kDexVisibilitySystem); in GetEnclosingMethod()
1631 DexFile::kDexAnnotationMethod); in GetEnclosingMethod()
1644 DexFile::kDexVisibilitySystem); in GetInnerClass()
1653 DexFile::AnnotationValue annotation_value; in GetInnerClass()
1658 DexFile::kAllObjects)) { in GetInnerClass()
1661 if (annotation_value.type_ != DexFile::kDexAnnotationNull && in GetInnerClass()
1662 annotation_value.type_ != DexFile::kDexAnnotationString) { in GetInnerClass()
1677 DexFile::kDexVisibilitySystem); in GetInnerClassFlags()
1686 DexFile::AnnotationValue annotation_value; in GetInnerClassFlags()
1691 DexFile::kAllRaw)) { in GetInnerClassFlags()
1694 if (annotation_value.type_ != DexFile::kDexAnnotationInt) { in GetInnerClassFlags()
1730 DexFile::kDexVisibilitySystem); in GetSourceDebugExtension()
1740 DexFile::AnnotationValue annotation_value; in GetSourceDebugExtension()
1745 DexFile::kAllRaw)) { in GetSourceDebugExtension()
1748 if (annotation_value.type_ != DexFile::kDexAnnotationString) { in GetSourceDebugExtension()
1762 data, annotation_set, DexFile::kDexVisibilityRuntime, annotation_class); in IsClassAnnotationPresent()
1766 int32_t GetLineNumFromPC(const DexFile* dex_file, ArtMethod* method, uint32_t rel_pc) { in GetLineNumFromPC()