aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/android/tools/r8/graph/DexApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/tools/r8/graph/DexApplication.java')
-rw-r--r--src/main/java/com/android/tools/r8/graph/DexApplication.java16
1 files changed, 8 insertions, 8 deletions
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 ca702fe3a..d84dd8c76 100644
--- a/src/main/java/com/android/tools/r8/graph/DexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DexApplication.java
@@ -25,7 +25,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Hashtable;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
@@ -87,7 +86,8 @@ public class DexApplication {
}
public List<DexProgramClass> classes() {
- List<DexProgramClass> classes = programClasses.collectLoadedClasses();
+ programClasses.forceLoad(type -> true);
+ List<DexProgramClass> classes = programClasses.getAllClasses();
assert reorderClasses(classes);
return classes;
}
@@ -110,16 +110,16 @@ public class DexApplication {
// program classes are supposed to be loaded, but force-loading them is no-op.
programClasses.forceLoad(type -> true);
- programClasses.collectLoadedClasses().forEach(clazz -> loaded.put(clazz.type, clazz));
+ programClasses.getAllClasses().forEach(clazz -> loaded.put(clazz.type, clazz));
if (classpathClasses != null) {
classpathClasses.forceLoad(type -> !loaded.containsKey(type));
- classpathClasses.collectLoadedClasses().forEach(clazz -> loaded.put(clazz.type, clazz));
+ classpathClasses.getAllClasses().forEach(clazz -> loaded.putIfAbsent(clazz.type, clazz));
}
if (libraryClasses != null) {
libraryClasses.forceLoad(type -> !loaded.containsKey(type));
- libraryClasses.collectLoadedClasses().forEach(clazz -> loaded.put(clazz.type, clazz));
+ libraryClasses.getAllClasses().forEach(clazz -> loaded.putIfAbsent(clazz.type, clazz));
}
return loaded;
@@ -192,7 +192,7 @@ public class DexApplication {
* <p>If no directory is provided everything is written to System.out.
*/
public void disassemble(Path outputDir, InternalOptions options) {
- for (DexProgramClass clazz : programClasses.collectLoadedClasses()) {
+ for (DexProgramClass clazz : programClasses.getAllClasses()) {
for (DexEncodedMethod method : clazz.virtualMethods()) {
if (options.methodMatchesFilter(method)) {
disassemble(method, getProguardMap(), outputDir);
@@ -246,7 +246,7 @@ public class DexApplication {
* Write smali source for the application code on the provided PrintStream.
*/
public void smali(InternalOptions options, PrintStream ps) {
- List<DexProgramClass> classes = programClasses.collectLoadedClasses();
+ List<DexProgramClass> classes = programClasses.getAllClasses();
classes.sort(Comparator.comparing(DexProgramClass::toSourceString));
boolean firstClass = true;
for (DexClass clazz : classes) {
@@ -322,7 +322,7 @@ public class DexApplication {
}
public Builder(DexApplication application) {
- programClasses = application.programClasses.collectLoadedClasses();
+ programClasses = application.programClasses.getAllClasses();
classpathClasses = application.classpathClasses;
libraryClasses = application.libraryClasses;
proguardMap = application.proguardMap;