On Sat, 22 Apr 2023 18:40:45 GMT, Chen Liang <li...@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 One comment to the topic of if internal name should include array descriptors. It should not include array descriptors if it is called internal name, however even with excluded arrays the method will help a lot by caching the internal names and avoiding repeated substringing. Or it can include also array descriptors if it is named differently ;) Classfile API will benefit from both ways. ------------- PR Comment: https://git.openjdk.org/jdk/pull/13598#issuecomment-1525266128