On Wed, 10 Mar 2021 16:34:39 GMT, Claes Redestad <redes...@openjdk.org> wrote:
>> - Remove unused code >> - Inline and simplify the bootstrap method invocation code (remove pointless >> reboxing checks etc) >> - Apply pattern matching to make some code more readable > > Claes Redestad has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains seven additional > commits since the last revision: > > - Revert pattern matching changes covered by #2913 > - Merge branch 'master' into invoke_cleanup > - Missing .values > - More cleanup, reduce allocations in InvokerBytecodeGenerator > - Missing outstanding changes > - Avoid unnecessary reboxing checks, inline and simplify class/mt invokes > - j.l.invoke cleanups src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java line 342: > 340: setClassWriter(cw); > 341: cw.visit(Opcodes.V1_8, NOT_ACC_PUBLIC + Opcodes.ACC_FINAL + > Opcodes.ACC_SUPER, > 342: CLASS_PREFIX.concat(className), null, > INVOKER_SUPER_NAME, null); I prefer to use the existing common pattern using `+` as I believe this gain is in the noise. src/java.base/share/classes/java/lang/invoke/BootstrapMethodInvoker.java line 151: > 149: maybeReBoxElements(argv); > 150: if (argv.length > 6) { > 151: result = > invokeWithManyArguments(bootstrapMethod, caller, name, type, argv); it'd be cleaner to move this to the default case in line 162 and 174 instead of having this special if-block. src/java.base/share/classes/java/lang/invoke/MethodType.java line 418: > 416: > 417: /** > 418: * Finds or creates a method type with additional parameter types. `nptype` is never void but what about the check if `nptype` is not null? ------------- PR: https://git.openjdk.java.net/jdk/pull/2300