On Wed, 11 Sep 2024 23:31:33 GMT, Chen Liang <[email protected]> wrote:
> Some type descriptors are validated against generic utf8 entries, such as
> field or method types; we can cache a type descriptor wrapping the content of
> the utf8 entry if this entry is ever used as a type descriptor.
>
> This patch is more of a code cleanup; it is performance neutral.
src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java
line 507:
> 505: public MethodTypeEntry methodTypeEntry(MethodTypeDesc descriptor) {
> 506: return methodTypeEntry(utf8Entry(descriptor));
> 507: }
This method body can be moved to
[`ConstantPoolBuilder::methodTypeEntry(MethodTypeDesc)`] and that method be
made `default` like [`ConstantPoolBuilder::classEntry(ClassDesc)`],
[`ConstantPoolBuilder::packageEntry(PackageDesc)`], and
[`ConstantPoolBuilder::moduleEntry(ModuleDesc)`].
[`ConstantPoolBuilder::methodTypeEntry(MethodTypeDesc)`]:
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#methodTypeEntry(java.lang.constant.MethodTypeDesc)
[`ConstantPoolBuilder::classEntry(ClassDesc)`]:
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#classEntry(java.lang.constant.ClassDesc)
[`ConstantPoolBuilder::packageEntry(PackageDesc)`]:
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#packageEntry(java.lang.constant.PackageDesc)
[`ConstantPoolBuilder::moduleEntry(ModuleDesc)`]:
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#moduleEntry(java.lang.constant.ModuleDesc)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20957#discussion_r1756268000