RFR: 8339876: Move constant symbol caches to Utf8EntryImpl
Chen Liang
liach at openjdk.org
Thu Sep 12 12:23:08 UTC 2024
On Thu, 12 Sep 2024 07:13:08 GMT, ExE Boss <duke at openjdk.org> 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)
too lazy to file a csr...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20957#discussion_r1756749044
More information about the core-libs-dev
mailing list