Avoid dereference of null SyntheticNaming during dump
Bug: 230811741
Change-Id: I68e9f27d8ed61af6f5363d5925b9826652c325da
diff --git a/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java b/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
index 215b25a..bcf9c6a 100644
--- a/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
+++ b/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
@@ -161,9 +161,11 @@
if (feature != null) {
return feature;
}
- feature = syntheticItems.getContextualFeatureSplit(type, this);
- if (feature != null) {
- return feature;
+ if (syntheticItems != null) {
+ feature = syntheticItems.getContextualFeatureSplit(type, this);
+ if (feature != null) {
+ return feature;
+ }
}
return FeatureSplit.BASE;
}
diff --git a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
index cee58c4..07cec45 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java
@@ -105,11 +105,6 @@
private final PendingSynthetics pending = new PendingSynthetics();
- // Empty collection for use only in tests and utilities.
- public static SyntheticItems empty() {
- return new SyntheticItems(-1, CommittedSyntheticsCollection.empty(null));
- }
-
// Only for use from initial AppInfo/AppInfoWithClassHierarchy create functions. */
public static CommittedItems createInitialSyntheticItems(DexApplication application) {
return new CommittedItems(
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApp.java b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
index 3b7706b..68837ab 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApp.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
@@ -627,8 +627,9 @@
classDescriptor -> {
if (featureSplitConfiguration != null) {
DexType type = dexItemFactory.createType(classDescriptor);
+ SyntheticItems syntheticItems = null;
FeatureSplit featureSplit =
- classToFeatureSplitMap.getFeatureSplit(type, SyntheticItems.empty());
+ classToFeatureSplitMap.getFeatureSplit(type, syntheticItems);
if (featureSplit != null && !featureSplit.isBase()) {
return featureSplitArchiveOutputStreams.get(featureSplit);
}