From fd26bc6062ab671ad7675c7cca0465b74723f16b Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sun, 30 Dec 2012 21:48:35 -0800 Subject: [PATCH] Remove the DexBuffer wrapper methods from DexReader --- .../dexbacked/DexBackedAnnotationElement.java | 6 +++--- .../dexbacked/DexBackedExceptionHandler.java | 2 +- .../jf/dexlib2/dexbacked/DexBackedField.java | 2 +- .../jf/dexlib2/dexbacked/DexBackedMethod.java | 4 ++-- .../org/jf/dexlib2/dexbacked/DexReader.java | 17 +---------------- .../instruction/DexBackedInstruction.java | 2 +- .../jf/dexlib2/dexbacked/util/DebugInfo.java | 2 +- .../value/DexBackedAnnotationEncodedValue.java | 4 ++-- .../value/DexBackedArrayEncodedValue.java | 2 +- .../dexbacked/value/DexBackedEncodedValue.java | 3 ++- .../value/DexBackedEnumEncodedValue.java | 2 +- .../value/DexBackedFieldEncodedValue.java | 2 +- .../value/DexBackedMethodEncodedValue.java | 2 +- .../value/DexBackedStringEncodedValue.java | 2 +- .../value/DexBackedTypeEncodedValue.java | 2 +- 15 files changed, 20 insertions(+), 34 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedAnnotationElement.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedAnnotationElement.java index 9dbcc97c..10806c2a 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedAnnotationElement.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedAnnotationElement.java @@ -38,16 +38,16 @@ import org.jf.dexlib2.iface.value.EncodedValue; import javax.annotation.Nonnull; public class DexBackedAnnotationElement extends BaseAnnotationElement { - @Nonnull private final DexBuffer dexBuffer; + @Nonnull private final DexBuffer dexBuf; public final int nameIndex; @Nonnull public final EncodedValue value; public DexBackedAnnotationElement(@Nonnull DexReader reader) { - this.dexBuffer = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.nameIndex = reader.readSmallUleb128(); this.value = DexBackedEncodedValue.readFrom(reader); } - @Nonnull @Override public String getName() { return dexBuffer.getString(nameIndex); } + @Nonnull @Override public String getName() { return dexBuf.getString(nameIndex); } @Nonnull @Override public EncodedValue getValue() { return value; } } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedExceptionHandler.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedExceptionHandler.java index ed11dbda..9aca7352 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedExceptionHandler.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedExceptionHandler.java @@ -43,7 +43,7 @@ public class DexBackedExceptionHandler extends BaseExceptionHandler implements E public DexBackedExceptionHandler(@Nonnull DexReader reader) { // TODO: verify dalvik doesn't accept an exception handler that points in the middle of an instruction - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.typeId = reader.readSmallUleb128(); this.handlerCodeAddress = reader.readSmallUleb128(); } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedField.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedField.java index d40571b4..847c55c7 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedField.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedField.java @@ -63,7 +63,7 @@ public class DexBackedField extends BaseFieldReference implements Field { int previousFieldIndex, @Nonnull StaticInitialValueIterator staticInitialValueIterator, @Nonnull AnnotationsDirectory.AnnotationIterator annotationIterator) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.classDef = classDef; int fieldIndexDiff = reader.readSmallUleb128(); diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethod.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethod.java index b533d67e..b442c459 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethod.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethod.java @@ -73,7 +73,7 @@ public class DexBackedMethod extends BaseMethodReference implements Method { public DexBackedMethod(@Nonnull DexReader reader, @Nonnull DexBackedClassDef classDef, int previousMethodIndex) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.classDef = classDef; int methodIndexDiff = reader.readSmallUleb128(); @@ -90,7 +90,7 @@ public class DexBackedMethod extends BaseMethodReference implements Method { int previousMethodIndex, @Nonnull AnnotationsDirectory.AnnotationIterator methodAnnotationIterator, @Nonnull AnnotationsDirectory.AnnotationIterator paramaterAnnotationIterator) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.classDef = classDef; int methodIndexDiff = reader.readSmallUleb128(); diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexReader.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexReader.java index fff58af7..9648a413 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexReader.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexReader.java @@ -36,7 +36,7 @@ import org.jf.util.ExceptionWithContext; import javax.annotation.Nonnull; public class DexReader { - @Nonnull private final DexBuffer dexBuf; + @Nonnull public final DexBuffer dexBuf; private int offset; public DexReader(@Nonnull DexBuffer dexBuf, int offset) { @@ -44,24 +44,9 @@ public class DexReader { this.offset = offset; } - @Nonnull public DexBuffer getDexBuffer() { return dexBuf; } public int getOffset() { return offset; } public void setOffset(int offset) { this.offset = offset; } - public int getStringIdItemOffset(int stringIndex) { return dexBuf.getStringIdItemOffset(stringIndex); } - public int getTypeIdItemOffset(int typeIndex) { return dexBuf.getTypeIdItemOffset(typeIndex); } - public int getFieldIdItemOffset(int fieldIndex) { return dexBuf.getFieldIdItemOffset(fieldIndex); } - public int getMethodIdItemOffset(int methodIndex) { return dexBuf.getMethodIdItemOffset(methodIndex); } - public int getProtoIdItemOffset(int methodIndex) { return dexBuf.getProtoIdItemOffset(methodIndex); } - public int getClassDefItemOffset(int classIndex) { return dexBuf.getClassDefItemOffset(classIndex); } - public String getString(int stringIndex) { return dexBuf.getString(stringIndex); } - public String getOptionalString(int stringIndex) { return dexBuf.getOptionalString(stringIndex); } - public String getType(int typeIndex) { return dexBuf.getType(typeIndex); } - public String getOptionalType(int typeIndex) { return dexBuf.getOptionalType(typeIndex); } - public String getField(int fieldIndex) { return dexBuf.getField(fieldIndex); } - public String getMethod(int methodIndex) { return dexBuf.getMethod(methodIndex); } - public String getReference(int type, int index) { return dexBuf.getReference(type, index); } - /** {@inheritDoc} */ public int readSleb128() { int end = offset; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/instruction/DexBackedInstruction.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/instruction/DexBackedInstruction.java index 700fa116..42d58716 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/instruction/DexBackedInstruction.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/instruction/DexBackedInstruction.java @@ -66,7 +66,7 @@ public abstract class DexBackedInstruction implements Instruction { Opcode opcode = Opcode.getOpcodeByValue(opcodeValue); //TODO: handle unexpected/unknown opcodes - Instruction instruction = buildInstruction(reader.getDexBuffer(), opcode, reader.getOffset()); + Instruction instruction = buildInstruction(reader.dexBuf, opcode, reader.getOffset()); reader.moveRelative(instruction.getCodeUnits()*2); return instruction; } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/DebugInfo.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/DebugInfo.java index 3f05ca71..24e8b584 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/DebugInfo.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/DebugInfo.java @@ -247,7 +247,7 @@ public abstract class DebugInfo implements Iterable { final MethodParameter methodParameter = methodParametersWithoutNames.get(index); String _name = null; if (index < parameterNameCount) { - _name = reader.getOptionalString(reader.readSmallUleb128() - 1); + _name = dexBuf.getOptionalString(reader.readSmallUleb128() - 1); } final String name = _name; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedAnnotationEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedAnnotationEncodedValue.java index 03a5e594..7d41b35d 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedAnnotationEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedAnnotationEncodedValue.java @@ -48,8 +48,8 @@ public class DexBackedAnnotationEncodedValue extends BaseAnnotationEncodedValue private final int elementsOffset; public DexBackedAnnotationEncodedValue(@Nonnull DexReader reader) { - this.dexBuf = reader.getDexBuffer(); - this.type = reader.getType(reader.readSmallUleb128()); + this.dexBuf = reader.dexBuf; + this.type = dexBuf.getType(reader.readSmallUleb128()); this.elementCount = reader.readSmallUleb128(); this.elementsOffset = reader.getOffset(); skipElements(reader, elementCount); diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedArrayEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedArrayEncodedValue.java index 0b84e1ac..c55272cd 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedArrayEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedArrayEncodedValue.java @@ -47,7 +47,7 @@ public class DexBackedArrayEncodedValue extends BaseArrayEncodedValue implements private final int encodedArrayOffset; public DexBackedArrayEncodedValue(@Nonnull DexReader reader) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; this.elementCount = reader.readSmallUleb128(); this.encodedArrayOffset = reader.getOffset(); skipElementsFrom(reader, elementCount); diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEncodedValue.java index 0df2c8dc..2710f838 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEncodedValue.java @@ -79,7 +79,8 @@ public abstract class DexBackedEncodedValue { return new DexBackedStringEncodedValue(reader, valueArg); case ValueType.TYPE: Preconditions.checkValueArg(valueArg, 3); - return new ImmutableTypeEncodedValue(reader.getType(reader.readSizedSmallUint(valueArg + 1))); + return new ImmutableTypeEncodedValue(reader.dexBuf.getType( + reader.readSizedSmallUint(valueArg + 1))); case ValueType.FIELD: Preconditions.checkValueArg(valueArg, 3); return new DexBackedFieldEncodedValue(reader, valueArg); diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEnumEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEnumEncodedValue.java index 86f3d9aa..1793b6a2 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEnumEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedEnumEncodedValue.java @@ -44,7 +44,7 @@ public class DexBackedEnumEncodedValue extends BaseEnumEncodedValue { private final int fieldIndex; public DexBackedEnumEncodedValue(@Nonnull DexReader reader, int valueArg) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; fieldIndex = reader.readSizedSmallUint(valueArg + 1); } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedFieldEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedFieldEncodedValue.java index 8d58c5d9..2f931954 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedFieldEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedFieldEncodedValue.java @@ -44,7 +44,7 @@ public class DexBackedFieldEncodedValue extends BaseFieldEncodedValue { private final int fieldIndex; public DexBackedFieldEncodedValue(@Nonnull DexReader reader, int valueArg) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; fieldIndex = reader.readSizedSmallUint(valueArg + 1); } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedMethodEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedMethodEncodedValue.java index 1eb13271..b1c8e288 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedMethodEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedMethodEncodedValue.java @@ -44,7 +44,7 @@ public class DexBackedMethodEncodedValue extends BaseMethodEncodedValue { private final int MethodIndex; public DexBackedMethodEncodedValue(@Nonnull DexReader reader, int valueArg) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; MethodIndex = reader.readSizedSmallUint(valueArg + 1); } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedStringEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedStringEncodedValue.java index 6d1458ad..aa5801dc 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedStringEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedStringEncodedValue.java @@ -42,7 +42,7 @@ public class DexBackedStringEncodedValue extends BaseStringEncodedValue { private final int stringIndex; public DexBackedStringEncodedValue(@Nonnull DexReader reader, int valueArg) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; stringIndex = reader.readSizedSmallUint(valueArg + 1); } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedTypeEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedTypeEncodedValue.java index a100174d..3134bb81 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedTypeEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/value/DexBackedTypeEncodedValue.java @@ -42,7 +42,7 @@ public class DexBackedTypeEncodedValue extends BaseTypeEncodedValue { private final int typeIndex; public DexBackedTypeEncodedValue(@Nonnull DexReader reader, int valueArg) { - this.dexBuf = reader.getDexBuffer(); + this.dexBuf = reader.dexBuf; typeIndex = reader.readSizedSmallUint(valueArg + 1); }