From 149225a27f05019e1cbb87b427e9b466617495b3 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Sat, 8 Aug 2009 21:14:37 +0000 Subject: [PATCH] Set the Bytes attribute multiple times, instead of using an array of bytes git-svn-id: https://smali.googlecode.com/svn/trunk@373 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../Adaptors/Format/ArrayDataMethodItem.java | 23 +++++++------------ .../templates/templates/baksmali.stg | 7 +++++- 2 files changed, 14 insertions(+), 16 deletions(-) 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