commit | 8e85555dd2b5809e22b88e8acbda4340154b4516 | [log] [tgz] |
---|---|---|
author | Clément Béra <clementbera@google.com> | Wed Jul 17 09:26:56 2024 +0200 |
committer | Clément Béra <clementbera@google.com> | Mon Jul 29 08:57:16 2024 +0000 |
tree | f18ef8679a1d08357eaa5f9651f9c50ec0f549ca | |
parent | 767c3c6ef490ba6762dba70cd29db58e56a75fb3 [diff] |
Disable vertical class merging when missing itf are present Bug: b/353475583 Change-Id: Id79b930d66f4a3e0333f27caa1e7442838117d08
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFieldResolutionChangesPolicy.java b/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFieldResolutionChangesPolicy.java index 7d38449..4bb94ee 100644 --- a/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFieldResolutionChangesPolicy.java +++ b/src/main/java/com/android/tools/r8/verticalclassmerging/policies/NoFieldResolutionChangesPolicy.java
@@ -42,8 +42,12 @@ FieldSignatureEquivalence equivalence = FieldSignatureEquivalence.get(); Set<Wrapper<DexField>> staticFieldsInInterfacesOfTarget = new HashSet<>(); for (DexType interfaceType : target.getInterfaces()) { - DexClass clazz = appView.definitionFor(interfaceType); - for (DexEncodedField staticField : clazz.staticFields()) { + DexClass itf = appView.definitionFor(interfaceType); + if (itf == null) { + // See b/353475583. + return true; + } + for (DexEncodedField staticField : itf.staticFields()) { staticFieldsInInterfacesOfTarget.add(equivalence.wrap(staticField.getReference())); } }