From c1f1ad6dcda2ea0943a323364ad4af25e372829f Mon Sep 17 00:00:00 2001 From: Paolo Cancedda Date: Tue, 3 Jan 2012 15:06:47 +0100 Subject: [PATCH] Since List code is frequently accessed by position, it's better to use an ArrayList instead of a LinkedList. Introduced method compact() to reduce memory usage. --- trunk/src/com/jpexs/asdec/abc/avm2/AVM2Code.java | 6 +++++- trunk/src/com/jpexs/asdec/abc/avm2/parser/ASM3Parser.java | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/trunk/src/com/jpexs/asdec/abc/avm2/AVM2Code.java b/trunk/src/com/jpexs/asdec/abc/avm2/AVM2Code.java index 26c07780b..aec761b9a 100644 --- a/trunk/src/com/jpexs/asdec/abc/avm2/AVM2Code.java +++ b/trunk/src/com/jpexs/asdec/abc/avm2/AVM2Code.java @@ -60,7 +60,7 @@ import java.util.regex.Pattern; public class AVM2Code { - public List code = new LinkedList(); + public ArrayList code = new ArrayList(); public static boolean DEBUG_REWRITE=false; public static final int OPT_U30 = 0x100; public static final int OPT_U8 = 0x200; @@ -705,6 +705,10 @@ public class AVM2Code { } } + public void compact() { + code.trimToSize(); + } + public byte[] getBytes() { return getBytes(null); } diff --git a/trunk/src/com/jpexs/asdec/abc/avm2/parser/ASM3Parser.java b/trunk/src/com/jpexs/asdec/abc/avm2/parser/ASM3Parser.java index 086e85f65..4397118f7 100644 --- a/trunk/src/com/jpexs/asdec/abc/avm2/parser/ASM3Parser.java +++ b/trunk/src/com/jpexs/asdec/abc/avm2/parser/ASM3Parser.java @@ -287,6 +287,8 @@ public class ASM3Parser { } } while (symb.type != ParsedSymbol.TYPE_EOF); + code.compact(); + for (OffsetItem oi : offsetItems) { for (LabelItem li : labelItems) { if (oi.label.equals(li.label)) {