Use reference type from wrapped instruction in BaseRewrittenReferenceInstruction
Otherwise, the reference won't be rewritten correctly if the overriding
class overrides getReferenceType to return a different type.
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/rewriter/InstructionRewriter.java b/dexlib2/src/main/java/org/jf/dexlib2/rewriter/InstructionRewriter.java
index c7da8ca..92d94be 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/rewriter/InstructionRewriter.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/rewriter/InstructionRewriter.java
@@ -81,7 +81,7 @@
}
@Override @Nonnull public Reference getReference() {
- switch (getReferenceType()) {
+ switch (instruction.getReferenceType()) {
case ReferenceType.TYPE:
return RewriterUtils.rewriteTypeReference(rewriters.getTypeRewriter(),
(TypeReference)instruction.getReference());