Revert DEX container format for API level 36 Generating DEX container format can only be enabled with system property com.android.tools.r8.dexContainerExperiment. Bug: b/413085713 Bug: b/399482296 Change-Id: Ibbbb21a268d61f32a23c1a29dab905adec0c1c36
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java index 478d724..bf40e33 100644 --- a/src/main/java/com/android/tools/r8/dex/FileWriter.java +++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -837,14 +837,11 @@ && options.getMinApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.R)) { return DexVersion.V40.getBytes(); } - assert !layoutType.isContainer() - || options.getMinApiLevel().isGreaterThanOrEqualTo(InternalOptions.containerDexApiLevel()); + assert !layoutType.isContainer() || options.canUseContainerDex(); DexVersion dexVersion = layoutType.isContainer() ? DexVersion.getDexVersion(options.getMinApiLevel()) - : options - .getMinApiLevel() - .isGreaterThanOrEqualTo(InternalOptions.containerDexApiLevel()) + : options.canUseContainerDex() ? DexVersion.V39 : DexVersion.getDexVersion(options.getMinApiLevel()); return options.testing.forceDexVersionBytes != null
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 579d7f2..21e75da 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2750,7 +2750,7 @@ public boolean canUseContainerDex() { assert isGeneratingDex(); - return hasMinApi(containerDexApiLevel()); + return false; } public boolean canUseJavaLangVarHandleStoreStoreFence(DexDefinitionSupplier definitions) {
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java index 752bc8e..96621f9 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java
@@ -33,7 +33,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } private static Path inputA;
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java index be16bea..fccee3d 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java
@@ -28,7 +28,8 @@ @Parameters(name = "{0}, useContainerDexApiLevel = {1}") public static List<Object[]> data() { - return buildParameters(getTestParameters().withNoneRuntime().build(), BooleanUtils.values()); + return buildParameters( + getTestParameters().withNoneRuntime().build(), BooleanUtils.falseValues()); } @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java index af4bf2d..941c42a 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java
@@ -28,7 +28,8 @@ @Parameters(name = "{0}, useContainerDexApiLevel = {1}") public static List<Object[]> data() { - return buildParameters(getTestParameters().withNoneRuntime().build(), BooleanUtils.values()); + return buildParameters( + getTestParameters().withNoneRuntime().build(), BooleanUtils.falseValues()); } @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java index 10925a9..02438ec 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java
@@ -31,7 +31,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java index 729e16f..b2c40b3 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java
@@ -29,7 +29,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } private static Path inputBase;
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java index fbaa954..ac7adf7 100644 --- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java
@@ -39,7 +39,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } private void configure(TestCompilerBuilder<?, ?, ?, ?, ?> builder) {
diff --git a/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java b/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java index 74d519c..0f57998 100644 --- a/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java +++ b/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java
@@ -11,7 +11,6 @@ import com.android.tools.r8.ToolHelper; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.IntBox; -import com.android.tools.r8.utils.InternalOptions; import java.nio.file.Path; import java.util.List; import org.junit.BeforeClass; @@ -37,7 +36,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } @BeforeClass @@ -56,7 +55,7 @@ Path outputBoth = testForD8(Backend.DEX, parameters) .addProgramFiles(inputA, inputB) - .setMinApi(InternalOptions.containerDexApiLevel()) + .apply(b -> enableContainer(b, useContainerDexApiLevel)) .compile() .writeToZip(); validateSingleContainerDex(outputBoth);
diff --git a/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java index f3015ce..fdc16fb 100644 --- a/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java +++ b/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java
@@ -33,7 +33,7 @@ public static List<Object[]> data() { return buildParameters( getTestParameters().withNoneRuntime().withPartialCompilation().build(), - BooleanUtils.values()); + BooleanUtils.falseValues()); } @Test