Don't try to look for a class named "null" when the type name is null
Bug: 122676398
Change-Id: I557de36c75f2d051d03cf08107b1ab5df24b9188
diff --git a/src/main/java/com/android/tools/r8/graph/JarCode.java b/src/main/java/com/android/tools/r8/graph/JarCode.java
index 04e6516..c203270 100644
--- a/src/main/java/com/android/tools/r8/graph/JarCode.java
+++ b/src/main/java/com/android/tools/r8/graph/JarCode.java
@@ -214,9 +214,13 @@
triggerDelayedParsingIfNeccessary();
node.instructions.accept(
new JarRegisterEffectsVisitor(method.getHolder(), registry, application));
- node.tryCatchBlocks.forEach(tryCatchBlockNode ->
+ for (TryCatchBlockNode tryCatchBlockNode : node.tryCatchBlocks) {
+ // Exception type can be null for "catch all" used for try/finally.
+ if (tryCatchBlockNode.type != null) {
registry.registerTypeReference(application.getTypeFromDescriptor(
- DescriptorUtils.getDescriptorFromClassBinaryName(tryCatchBlockNode.type))));
+ DescriptorUtils.getDescriptorFromClassBinaryName(tryCatchBlockNode.type)));
+ }
+ }
}
@Override
diff --git a/src/main/java/com/android/tools/r8/utils/DescriptorUtils.java b/src/main/java/com/android/tools/r8/utils/DescriptorUtils.java
index 56dc071..2499ccb 100644
--- a/src/main/java/com/android/tools/r8/utils/DescriptorUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/DescriptorUtils.java
@@ -288,6 +288,7 @@
* @return a class descriptor i.e. "Ljava/lang/Object;"
*/
public static String getDescriptorFromClassBinaryName(String typeBinaryName) {
+ assert typeBinaryName != null;
return ('L' + typeBinaryName + ';');
}