Commit 95afe121 authored by Skylot's avatar Skylot

core: don't cache dex strings (old workaround for bug in dx)

parent 07937f1d
...@@ -31,16 +31,12 @@ public class DexNode { ...@@ -31,16 +31,12 @@ public class DexNode {
private final RootNode root; private final RootNode root;
private final Dex dexBuf; private final Dex dexBuf;
private final List<ClassNode> classes = new ArrayList<ClassNode>(); private final List<ClassNode> classes = new ArrayList<ClassNode>();
private final String[] strings;
private final Map<Object, FieldNode> constFields = new HashMap<Object, FieldNode>(); private final Map<Object, FieldNode> constFields = new HashMap<Object, FieldNode>();
public DexNode(RootNode root, InputFile input) { public DexNode(RootNode root, InputFile input) {
this.root = root; this.root = root;
this.dexBuf = input.getDexBuffer(); this.dexBuf = input.getDexBuffer();
List<String> stringList = dexBuf.strings();
this.strings = stringList.toArray(new String[stringList.size()]);
} }
public void loadClasses() throws DecodeException { public void loadClasses() throws DecodeException {
...@@ -80,7 +76,7 @@ public class DexNode { ...@@ -80,7 +76,7 @@ public class DexNode {
// DexBuffer wrappers // DexBuffer wrappers
public String getString(int index) { public String getString(int index) {
return strings[index]; return dexBuf.strings().get(index);
} }
public ArgType getType(int index) { public ArgType getType(int index) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment