Disable xml inlining per default XML inlining broke in eos. Change-Id: I77c9f5e3293ce9aa7b58f3242313d7612e4e8b26
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 369a7fc..1e182f5 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -783,6 +783,8 @@ System.getProperty("com.android.tools.r8.pruneNonVissibleAnnotationClasses") != null; public boolean experimentalTraceAndroidEnumSerialization = System.getProperty("com.android.tools.r8.experimentalTraceAndroidEnumSerialization") != null; + public boolean enableXmlInlining = + System.getProperty("com.android.tools.r8.enableXmlInlining") != null; // Flag to turn on/offLoad/store optimization in the Cf back-end. public boolean enableLoadStoreOptimization = true;
diff --git a/src/main/java/com/android/tools/r8/utils/ResourceShrinkerUtils.java b/src/main/java/com/android/tools/r8/utils/ResourceShrinkerUtils.java index 79a5d39..4ffdefa 100644 --- a/src/main/java/com/android/tools/r8/utils/ResourceShrinkerUtils.java +++ b/src/main/java/com/android/tools/r8/utils/ResourceShrinkerUtils.java
@@ -24,7 +24,8 @@ new R8ResourceShrinkerState( exception -> appView.reporter().fatalError(new ExceptionDiagnostic(exception)), shrinkerDebugReporterFromStringConsumer( - options.resourceShrinkerConfiguration.getDebugConsumer(), appView.reporter())); + options.resourceShrinkerConfiguration.getDebugConsumer(), appView.reporter()), + options.enableXmlInlining); if (options.isOptimizedResourceShrinking()) { try { addResources(appView, state, options.androidResourceProvider, FeatureSplit.BASE);
diff --git a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java index d58a2d2..2b1762c 100644 --- a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java +++ b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
@@ -66,6 +66,7 @@ private final Map<String, Supplier<InputStream>> resfileProviders = new HashMap<>(); private final Map<FeatureSplit, ResourceTable> resourceTables = new HashMap<>(); private final ShrinkerDebugReporter shrinkerDebugReporter; + private final boolean enableXmlInlining; private ClassReferenceCallback enqueuerCallback; private MethodReferenceCallback methodCallback; private Map<Integer, Set<String>> resourceIdToXmlFiles; @@ -99,10 +100,12 @@ public R8ResourceShrinkerState( Function<Exception, RuntimeException> errorHandler, - ShrinkerDebugReporter shrinkerDebugReporter) { + ShrinkerDebugReporter shrinkerDebugReporter, + boolean enableXmlInlining) { r8ResourceShrinkerModel = new R8ResourceShrinkerModel(shrinkerDebugReporter, true); this.shrinkerDebugReporter = shrinkerDebugReporter; this.errorHandler = errorHandler; + this.enableXmlInlining = enableXmlInlining; } public void trace(int id, String reachableFrom) { @@ -344,6 +347,9 @@ private boolean tryInlineValues( XmlNode.Builder xmlNodeBuilder, Consumer<IntSet> inlinedIdsConsumer) { + if (!enableXmlInlining) { + return false; + } XmlElement.Builder elementBuilder = xmlNodeBuilder.getElementBuilder(); IntSet inlinedIds = null; for (XmlAttribute.Builder attributeBuilder : elementBuilder.getAttributeBuilderList()) {
diff --git a/src/test/java/com/android/tools/r8/androidresources/ColorInliningTest.java b/src/test/java/com/android/tools/r8/androidresources/ColorInliningTest.java index 05ff796..ad0627c 100644 --- a/src/test/java/com/android/tools/r8/androidresources/ColorInliningTest.java +++ b/src/test/java/com/android/tools/r8/androidresources/ColorInliningTest.java
@@ -85,6 +85,10 @@ AndroidResourceTestingUtils.transformResourcesReferences(FooBar.class)) .addAndroidResources(testResources) .addKeepMainRule(FooBar.class) + .applyIf( + parameters.getPartialCompilationTestParameters().isSome(), + rr -> rr.addR8PartialR8OptionsModification(o -> o.enableXmlInlining = true), + rr -> rr.addOptionsModification(o -> o.enableXmlInlining = true)) .applyIf(optimize, R8TestBuilder::enableOptimizedShrinking) .applyIf( addResourcesSubclass,