RFR: 8306697: Add method to obtain String for CONSTANT_Class_info in ClassDesc [v2]
Chen Liang
liach at openjdk.org
Tue Apr 25 23:26:48 UTC 2023
On Sat, 22 Apr 2023 18:40:45 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Add a method `internalName` to `ClassDesc`, and unifies handling of string representation of a class constant in CONSTANT_Class_info via `ofInternalName` and `internalName` APIs, documented in `ClassDesc` itself. In particular, `ofInternalName` now accepts arrays.
>>
>> The motivation of this API is that avoiding frequent String creations via caching (enabled by this new API, will be in a separate patch) would speed up Classfile API's [writing of simple class files](https://github.com/openjdk/jdk/blob/master/test/micro/org/openjdk/bench/jdk/classfile/Write.java) by 1/3. See https://mail.openjdk.org/pipermail/classfile-api-dev/2023-April/000296.html for more context.
>>
>> This API is futureproof: for Valhalla's Q-types, it will return their string representation in CONSTANT_Class_info, which is most likely their full descriptor string.
>>
>> Javadoc: https://cr.openjdk.org/~liach/8306697/java.base/java/lang/constant/ClassDesc.html
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
>
> Unify ofInternalName and internalName, document about CONSTANT_Class_info, remove misleading JVMS 4.4.1 links
@mlchung Sorry to bother, but since you are frequently working on the Constant API and the caching allowed by this patch allows the Classfile API to speed up significantly, can you review this patch and its associated CSR?
In particular, I wish that you can review in these perspectives:
1. Whether I should add a `boolean hasInternalName()` to check if the given class can be encoded in a `CONSTANT_Class_info`; currently it's equivalent to `!isPrimitive()`, but it might change when, for example, valhalla arrives.
2. Whether I should use a `@revised` tag on `ofInternalName`.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13598#issuecomment-1522538610
More information about the core-libs-dev
mailing list