@Override protected void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int callSiteOffset = dexFile.readSmallUint(out.getCursor()); StringWriter writer = new StringWriter(); try { EncodedValueUtils.writeEncodedValue(writer, new DexBackedArrayEncodedValue(new DexReader(dexFile, callSiteOffset))); } catch (IOException ex) { // Shouldn't get an IOException from a StringWriter.. throw new RuntimeException(ex); } out.annotate(4, "call_site_id_item[0x%x] = %s", callSiteOffset, writer.toString()); } };
public static void skipFrom(@Nonnull DexReader reader) { int elementCount = reader.readSmallUleb128(); skipElementsFrom(reader, elementCount); }
break; case ValueType.ARRAY: DexBackedArrayEncodedValue.skipFrom(reader); break; case ValueType.ANNOTATION:
for (AnnotationElement dexBackedAnnotationElement:elements){ if (dexBackedAnnotationElement.getValue() instanceof DexBackedArrayEncodedValue){ List<? extends EncodedValue> values = ((DexBackedArrayEncodedValue) dexBackedAnnotationElement.getValue()).getValue(); for (EncodedValue encodedValue:values) { if (encodedValue instanceof TypeEncodedValue) {
break; case ValueType.ARRAY: DexBackedArrayEncodedValue.skipFrom(reader); break; case ValueType.ANNOTATION:
for (DexBackedAnnotationElement dexBackedAnnotationElement:elements){ if (dexBackedAnnotationElement.getValue() instanceof DexBackedArrayEncodedValue){ List<? extends EncodedValue> values = ((DexBackedArrayEncodedValue) dexBackedAnnotationElement.getValue()).getValue(); for (EncodedValue encodedValue:values) { if (encodedValue instanceof TypeEncodedValue) {
public static void skipFrom(@Nonnull DexReader reader) { int elementCount = reader.readSmallUleb128(); skipElementsFrom(reader, elementCount); }
@Override protected void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int callSiteOffset = dexFile.readSmallUint(out.getCursor()); StringWriter writer = new StringWriter(); try { EncodedValueUtils.writeEncodedValue(writer, new DexBackedArrayEncodedValue(new DexReader(dexFile, callSiteOffset))); } catch (IOException ex) { // Shouldn't get an IOException from a StringWriter.. throw new RuntimeException(ex); } out.annotate(4, "call_site_id_item[0x%x] = %s", callSiteOffset, writer.toString()); } };
break; case ValueType.ARRAY: DexBackedArrayEncodedValue.skipFrom(reader); break; case ValueType.ANNOTATION:
public static void skipFrom(@Nonnull DexReader reader) { int elementCount = reader.readSmallUleb128(); skipElementsFrom(reader, elementCount); }
case ValueType.ARRAY: Preconditions.checkValueArg(valueArg, 0); return new DexBackedArrayEncodedValue(reader); case ValueType.ANNOTATION: Preconditions.checkValueArg(valueArg, 0);
public DexBackedArrayEncodedValue(@Nonnull DexReader reader) { this.dexFile = reader.dexBuf; this.elementCount = reader.readSmallUleb128(); this.encodedArrayOffset = reader.getOffset(); skipElementsFrom(reader, elementCount); }
case ValueType.ARRAY: Preconditions.checkValueArg(valueArg, 0); return new DexBackedArrayEncodedValue(reader); case ValueType.ANNOTATION: Preconditions.checkValueArg(valueArg, 0);
public DexBackedArrayEncodedValue(@Nonnull DexReader reader) { this.dexFile = reader.dexBuf; this.elementCount = reader.readSmallUleb128(); this.encodedArrayOffset = reader.getOffset(); skipElementsFrom(reader, elementCount); }
case ValueType.ARRAY: Preconditions.checkValueArg(valueArg, 0); return new DexBackedArrayEncodedValue(reader); case ValueType.ANNOTATION: Preconditions.checkValueArg(valueArg, 0);
public DexBackedArrayEncodedValue(@Nonnull DexReader reader) { this.dexFile = reader.dexBuf; this.elementCount = reader.readSmallUleb128(); this.encodedArrayOffset = reader.getOffset(); skipElementsFrom(reader, elementCount); }