RFR: 8361102: java.lang.classfile.CodeBuilder.branch(Opcode op, Label target) doesn't throw IllegalArgumentException - if op is not of Opcode.Kind.BRANCH

Adam Sotona asotona at openjdk.org
Fri Jul 11 14:06:40 UTC 2025


On Wed, 9 Jul 2025 21:14:17 GMT, Chen Liang <liach at openjdk.org> wrote:

> Currently, DirectCodeBuilder is erroneously missing argument checks for a few of its override methods that take arguments such as Opcode and the array size for multianewarray and the switches, which would write something before throwing an exception. We correct these problems and verify with some tests.
> 
> Note: Other Label-writing methods resolve their label eagerly so they are not (yet) problematic.

src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java line 628:

> 626:             @Override
> 627:             public int compare(SwitchCase c1, SwitchCase c2) {
> 628:                 return Integer.compare(c1.caseValue(), c2.caseValue());

isn this an implicit null check?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26229#discussion_r2200827480


More information about the core-libs-dev mailing list