RFR: 8325485: IncrementInstructions.of(int, int) is not storing the args

Andrey Turbanov aturbanov at openjdk.org
Fri Feb 9 08:18:03 UTC 2024


On Thu, 8 Feb 2024 13:18:41 GMT, Adam Sotona <asotona at openjdk.org> wrote:

> ClassFile API provides two sets of instructions implementations (bound and unbound).
> Unbound implementation of `IncrementInstruction::constant` returns invalid value. 
> This bug discovered a hole in the ClassFile API test coverage.
> 
> This patch provides very simple fix of `IncrementInstruction`
> and more complex fix of the test framework to cover all unbound instruction with automated tests.
> 
> The test framework fix includes correction of hash calculation of instructions in `ClassRecord` and
> two-pass transformation in `RebuildingTransformation`. Second pass has been added to discover bugs in unbound-to-unbound instruction conversions.
> 
> Please review.
> 
> Thanks,
> Adam

test/jdk/jdk/classfile/helpers/RebuildingTransformation.java line 441:

> 439:                     switch (i.opcode()) {
> 440:                         case MONITORENTER ->  cob.monitorenter();
> 441:                         case MONITOREXIT ->  cob.monitorexit();

Suggestion:

                        case MONITORENTER -> cob.monitorenter();
                        case MONITOREXIT -> cob.monitorexit();

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17770#discussion_r1483992861


More information about the core-libs-dev mailing list