Do not check for maxStack when desugaring CfMultiNewArray
Bug: 181835354
Bug: 181185068
Change-Id: I663e5ffc35812aed6c321ddf16561e08b80f2bc1
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index ba22b16..08bc5f0 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -336,6 +336,7 @@
private final DebugParsingOptions debugParsingOptions;
private int maxStack;
private int maxLocals;
+ private boolean desugaredVisitMultiANewArrayInstruction;
private List<CfInstruction> instructions;
private List<CfTryCatch> tryCatchRanges;
private List<LocalVariableInfo> localVariables;
@@ -386,7 +387,12 @@
}
code.setCode(
new CfCode(
- method.holder, maxStack, maxLocals, instructions, tryCatchRanges, localVariables));
+ method.holder,
+ desugaredVisitMultiANewArrayInstruction ? Integer.MAX_VALUE : maxStack,
+ maxLocals,
+ instructions,
+ tryCatchRanges,
+ localVariables));
}
@Override
@@ -948,6 +954,7 @@
// ..., ref
visitTypeInsn(Opcodes.CHECKCAST, desc);
// ..., arrayref(of type : desc)
+ desugaredVisitMultiANewArrayInstruction = true;
}
@Override