Sort classes for smali disassembly
This makes diffing two set of dex-files easier.
Change-Id: Idd08053ee12af57c9ce850e28d4c9b08e3fed5c2
diff --git a/src/main/java/com/android/tools/r8/graph/DexApplication.java b/src/main/java/com/android/tools/r8/graph/DexApplication.java
index fbed5de..1b83e59 100644
--- a/src/main/java/com/android/tools/r8/graph/DexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DexApplication.java
@@ -24,6 +24,7 @@
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Comparator;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
@@ -182,7 +183,9 @@
/** Write smali source for the application code on the provided PrintStream. */
public void smali(InternalOptions options, PrintStream ps) {
- for (DexClass clazz : classes()) {
+ List<DexProgramClass> classes = (List<DexProgramClass>) classes();
+ classes.sort(Comparator.comparing(DexProgramClass::toSourceString));
+ for (DexClass clazz : classes) {
boolean classHeaderWritten = false;
for (DexEncodedMethod method : clazz.virtualMethods()) {
if (options.methodMatchesFilter(method)) {