diff --git a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java index 254184a2..f919d256 100644 --- a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java +++ b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java @@ -45,28 +45,21 @@ public class ArrayDataMethodItem extends InstructionFormatMethodItem getValues() { - List values = new ArrayList(); + private void setValuesAttribute(StringTemplate parentTemplate) { Iterator iterator = instruction.getElements(); - while (iterator.hasNext()) { ArrayDataPseudoInstruction.ArrayElement element = iterator.next(); - byte[] array = new byte[element.elementWidth]; - System.arraycopy(element.buffer, element.bufferIndex, array, 0, element.elementWidth); - values.add(new ByteArray(array)); - } - return values; - } + StringTemplate template = parentTemplate.getGroup().getInstanceOf("ArrayElement"); - public static class ByteArray - { - public final byte[] ByteArray; - public ByteArray(byte[] byteArray) { - this.ByteArray = byteArray; + for (int i=element.bufferIndex; i - }; separator="\n"> + .end array-data >> +ArrayElement(Bytes) ::= +<< + +>> + PackedSwitchData(Opcode, FirstKey, Targets) ::= << .packed-switch