Fix race in main-dex list building
Adding from files and from strings need to run on the same thread.
Change-Id: I3f2918cf8b72d6a262ecf9dfe87a0b7f097a08dd
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationReader.java b/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
index 8820b4d..036c537 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
@@ -155,16 +155,16 @@
InputStream input = closer.register(resource.getStream());
builder.addToMainDexList(MainDexList.parse(input, itemFactory));
}
+ builder.addToMainDexList(
+ inputApp.getMainDexClasses()
+ .stream()
+ .map(clazz -> itemFactory.createType(DescriptorUtils.javaTypeToDescriptor(clazz)))
+ .collect(Collectors.toList()));
} catch (IOException e) {
throw new RuntimeException(e);
}
}));
}
- builder.addToMainDexList(
- inputApp.getMainDexClasses()
- .stream()
- .map(clazz -> itemFactory.createType(DescriptorUtils.javaTypeToDescriptor(clazz)))
- .collect(Collectors.toList()));
}
private final class ClassReader {