IParamsValue (AbstractInsnNode insn, List<? extends IParamsValue> values) { int opcode = insn.getOpcode(); switch (opcode) { case INVOKESTATIC, INVOKESPECIAL, INVOKEVIRTUAL, INVOKEINTERFACE, INVOKEDYNAMIC -> { for (IParamsValue value : values) { leaking |= value.params; } } default -> { } } int size; if (opcode == MULTIANEWARRAY) { size = 1; } else { String desc = (opcode == INVOKEDYNAMIC) ? ((InvokeDynamicInsnNode) insn).desc : ((MethodInsnNode) insn).desc; size = ASMUtils.getReturnSizeFast(desc); } return size == 1 ? val1 : val2; }