Add a factory for ApplicationWriter
Bug: b/249922554
Change-Id: I13bf45d3cac35e090157253751311577e892603b
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 068f2ec..f578416 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -333,7 +333,7 @@
if (options.isGeneratingClassFiles()) {
new CfApplicationWriter(appView, marker).write(options.getClassFileConsumer(), inputApp);
} else {
- new ApplicationWriter(appView, marker).write(executor, inputApp);
+ ApplicationWriter.create(appView, marker).write(executor, inputApp);
}
options.printWarnings();
} catch (ExecutionException e) {
@@ -428,7 +428,7 @@
ConvertedCfFiles convertedCfFiles = new ConvertedCfFiles();
new GenericSignatureRewriter(appView).run(appView.appInfo().classes(), executor);
new KotlinMetadataRewriter(appView).runForD8(executor);
- new ApplicationWriter(appView, marker, convertedCfFiles).write(executor);
+ ApplicationWriter.create(appView, marker, convertedCfFiles).write(executor);
AndroidApp.Builder builder = AndroidApp.builder(inputApp);
builder.getProgramResourceProviders().clear();
builder.addProgramResourceProvider(convertedCfFiles);
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 6ef6c416..71898e2 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -217,7 +217,7 @@
if (options.isGeneratingClassFiles()) {
new CfApplicationWriter(appView, marker).write(options.getClassFileConsumer(), inputApp);
} else {
- new ApplicationWriter(appView, marker).write(executorService, inputApp);
+ ApplicationWriter.create(appView, marker).write(executorService, inputApp);
}
} catch (IOException e) {
throw new RuntimeException("Cannot write application", e);
diff --git a/src/main/java/com/android/tools/r8/bisect/Bisect.java b/src/main/java/com/android/tools/r8/bisect/Bisect.java
index c7547a8..8a196d9 100644
--- a/src/main/java/com/android/tools/r8/bisect/Bisect.java
+++ b/src/main/java/com/android/tools/r8/bisect/Bisect.java
@@ -187,7 +187,7 @@
StringConsumer proguardMapConsumer = options.proguardMapConsumer;
AndroidAppConsumers compatSink = new AndroidAppConsumers(options);
ApplicationWriter writer =
- new ApplicationWriter(
+ ApplicationWriter.create(
AppView.createForD8(
AppInfo.createInitialAppInfo(app, GlobalSyntheticsStrategy.forNonSynthesizing())),
null);
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
index 96b00bf..cab5f0c 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
@@ -174,11 +174,7 @@
}
}
- public ApplicationWriter(AppView<?> appView, Marker marker) {
- this(appView, marker, null);
- }
-
- public ApplicationWriter(AppView<?> appView, Marker marker, DexIndexedConsumer consumer) {
+ private ApplicationWriter(AppView<?> appView, Marker marker, DexIndexedConsumer consumer) {
this.appView = appView;
this.options = appView.options();
this.desugaredLibraryCodeToKeep = CodeToKeep.createCodeToKeep(appView);
@@ -189,6 +185,15 @@
this.previousMarkers = appView.dexItemFactory().extractMarkers();
}
+ public static ApplicationWriter create(AppView<?> appView, Marker marker) {
+ return ApplicationWriter.create(appView, marker, null);
+ }
+
+ public static ApplicationWriter create(
+ AppView<?> appView, Marker marker, DexIndexedConsumer consumer) {
+ return new ApplicationWriter(appView, marker, consumer);
+ }
+
private NamingLens getNamingLens() {
return appView.getNamingLens();
}
diff --git a/src/test/java/com/android/tools/r8/utils/Smali.java b/src/test/java/com/android/tools/r8/utils/Smali.java
index 30274f0..4321812 100644
--- a/src/test/java/com/android/tools/r8/utils/Smali.java
+++ b/src/test/java/com/android/tools/r8/utils/Smali.java
@@ -112,7 +112,7 @@
try {
DexApplication dexApp = new ApplicationReader(app, options, Timing.empty()).read(executor);
ApplicationWriter writer =
- new ApplicationWriter(
+ ApplicationWriter.create(
AppView.createForD8(
AppInfo.createInitialAppInfo(
dexApp, GlobalSyntheticsStrategy.forNonSynthesizing())),