Move construction of marker to internal options
Change-Id: I5c617faa9c426ab231b54f3427130eaf29534af7
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 03b7ada..ee4aa01 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -23,7 +23,6 @@
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.VersionProperties;
import com.google.common.collect.ImmutableList;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -141,24 +140,6 @@
});
}
- // Compute the marker to be placed in the main dex file.
- static Marker getMarker(InternalOptions options) {
- if (options.hasMarker()) {
- return options.getMarker();
- }
- if (options.testing.dontCreateMarkerInD8) {
- return null;
- }
- Marker marker = new Marker(Tool.D8)
- .setVersion(Version.LABEL)
- .setCompilationMode(options.debug ? CompilationMode.DEBUG : CompilationMode.RELEASE)
- .setMinApi(options.minApiLevel);
- if (Version.isDev()) {
- marker.setSha1(VersionProperties.INSTANCE.getSha());
- }
- return marker;
- }
-
private static void run(AndroidApp inputApp, InternalOptions options, ExecutorService executor)
throws IOException {
Timing timing = new Timing("D8");
@@ -204,7 +185,7 @@
break;
}
}
- Marker marker = getMarker(options);
+ Marker marker = options.getMarker(Tool.D8);
Set<Marker> markers = new HashSet<>(app.dexItemFactory.extractMarkers());
if (marker != null && hasClassResources) {
markers.add(marker);
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 4d13628..46ff776 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -79,7 +79,6 @@
import com.android.tools.r8.utils.StringDiagnostic;
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.VersionProperties;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.io.ByteStreams;
@@ -179,24 +178,6 @@
});
}
- // Compute the marker to be placed in the main dex file.
- private static Marker getMarker(InternalOptions options) {
- if (options.hasMarker()) {
- return options.getMarker();
- }
- Marker marker =
- new Marker(Tool.R8)
- .setVersion(Version.LABEL)
- .setCompilationMode(options.debug ? CompilationMode.DEBUG : CompilationMode.RELEASE);
- if (!options.isGeneratingClassFiles()) {
- marker.setMinApi(options.minApiLevel);
- }
- if (Version.isDev()) {
- marker.setSha1(VersionProperties.INSTANCE.getSha());
- }
- return marker;
- }
-
static void writeApplication(
ExecutorService executorService,
DexApplication application,
@@ -208,7 +189,7 @@
ProguardMapSupplier proguardMapSupplier)
throws ExecutionException {
try {
- Marker marker = getMarker(options);
+ Marker marker = options.getMarker(Tool.R8);
assert marker != null;
if (options.isGeneratingClassFiles()) {
new CfApplicationWriter(
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index ec1a306..cb0b22f 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -6,6 +6,7 @@
import static com.google.common.base.Predicates.not;
import com.android.tools.r8.ClassFileConsumer;
+import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.DataResourceConsumer;
import com.android.tools.r8.DataResourceProvider;
import com.android.tools.r8.DexFilePerClassFileConsumer;
@@ -14,6 +15,7 @@
import com.android.tools.r8.StringConsumer;
import com.android.tools.r8.Version;
import com.android.tools.r8.dex.Marker;
+import com.android.tools.r8.dex.Marker.Tool;
import com.android.tools.r8.errors.CompilationError;
import com.android.tools.r8.errors.IncompleteNestNestDesugarDiagnosic;
import com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic;
@@ -232,17 +234,33 @@
private boolean hasMarker = false;
private Marker marker;
- public boolean hasMarker() {
- return hasMarker;
- }
-
public void setMarker(Marker marker) {
this.hasMarker = true;
this.marker = marker;
}
- public Marker getMarker() {
- assert hasMarker();
+ public Marker getMarker(Tool tool) {
+ if (hasMarker) {
+ return marker;
+ }
+ return createMarker(tool);
+ }
+
+ // Compute the marker to be placed in the main dex file.
+ private Marker createMarker(Tool tool) {
+ if (tool == Tool.D8 && testing.dontCreateMarkerInD8) {
+ return null;
+ }
+ Marker marker =
+ new Marker(tool)
+ .setVersion(Version.LABEL)
+ .setCompilationMode(debug ? CompilationMode.DEBUG : CompilationMode.RELEASE);
+ if (!isGeneratingClassFiles()) {
+ marker.setMinApi(minApiLevel);
+ }
+ if (Version.isDev()) {
+ marker.setSha1(VersionProperties.INSTANCE.getSha());
+ }
return marker;
}