private void writeTries(Code.Try[] tries, int[] catchHandlerOffsets) { for (Code.Try tryItem : tries) { writeInt(tryItem.startAddress); writeUnsignedShort(tryItem.instructionCount); writeUnsignedShort(catchHandlerOffsets[tryItem.catchHandlerIndex]); } }
private void writeMethods(ClassData.Method[] methods) { int lastOutMethodIndex = 0; for (ClassData.Method method : methods) { writeUleb128(method.methodIndex - lastOutMethodIndex); lastOutMethodIndex = method.methodIndex; writeUleb128(method.accessFlags); writeUleb128(method.codeOffset); } }
public short[] readShortArray(int length) { if (length == 0) { return EMPTY_SHORT_ARRAY; } short[] result = new short[length]; for (int i = 0; i < length; i++) { result[i] = readShort(); } return result; }
@Override protected StringData nextItem(DexDataBuffer section) { return section.readStringData(); }
@Override protected Integer nextItem(DexDataBuffer section) { return section.readInt(); }
@Override protected AnnotationSet nextItem(DexDataBuffer section) { return section.readAnnotationSet(); }
@Override protected ClassData nextItem(DexDataBuffer section) { return section.readClassData(); }
@Override protected EncodedValue nextItem(DexDataBuffer section) { return section.readEncodedArray(); }
@Override protected FieldId nextItem(DexDataBuffer section) { return section.readFieldId(); }
@Override protected DebugInfoItem nextItem(DexDataBuffer section) { return section.readDebugInfoItem(); }
@Override protected AnnotationSetRefList nextItem(DexDataBuffer section) { return section.readAnnotationSetRefList(); }
@Override protected TypeList nextItem(DexDataBuffer section) { return section.readTypeList(); }
@Override protected ClassDef nextItem(DexDataBuffer section) { return section.readClassDef(); }
public void skipWithAutoExpand(int count) { ensureBufferSize(SizeOf.UBYTE * count); skip(count); }
@Override protected StringData nextItem(DexDataBuffer section) { return section.readStringData(); }
@Override protected Integer nextItem(DexDataBuffer section) { return section.readInt(); }
@Override protected AnnotationSet nextItem(DexDataBuffer section) { return section.readAnnotationSet(); }
@Override protected ClassData nextItem(DexDataBuffer section) { return section.readClassData(); }
@Override protected EncodedValue nextItem(DexDataBuffer section) { return section.readEncodedArray(); }
private void writeFields(ClassData.Field[] fields) { int lastOutFieldIndex = 0; for (ClassData.Field field : fields) { writeUleb128(field.fieldIndex - lastOutFieldIndex); lastOutFieldIndex = field.fieldIndex; writeUleb128(field.accessFlags); } }