From 37eb703409aefb67782f0d83cae41fbc1d96201c Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Wed, 28 Feb 2018 16:21:55 -0800 Subject: [PATCH] Make smali file iteration more deterministic In some cases, even when running in single threaded mode (-j 1), smali could produce slightly different results if files are not listed in a consistent order. This ensures that we assemble a given set of smali files in a consistent order when running in single-threaded mode, regardless of the order they are listed in. --- smali/src/main/java/org/jf/smali/Smali.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smali/src/main/java/org/jf/smali/Smali.java b/smali/src/main/java/org/jf/smali/Smali.java index 7f3762af..1c7d1584 100644 --- a/smali/src/main/java/org/jf/smali/Smali.java +++ b/smali/src/main/java/org/jf/smali/Smali.java @@ -50,6 +50,7 @@ import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.*; public class Smali { @@ -73,7 +74,7 @@ public class Smali { * @return true if assembly completed with no errors, or false if errors were encountered */ public static boolean assemble(final SmaliOptions options, List input) throws IOException { - LinkedHashSet filesToProcessSet = new LinkedHashSet(); + TreeSet filesToProcessSet = new TreeSet(); for (String fileToProcess: input) { File argFile = new File(fileToProcess);