> Hi everyone, `PrintClassLayout::print_class_layout` expects internal class > names as its argument, but is called externally by users through `jcmd`. This > leads to inconsistencies with other functions. For example: > > jcmd <pid> VM.class_hierarchy java.lang.String > jcmd <pid> VM.class_print_layout java/lang/String > > > In addition, its output is also in the internal format. This should be > changed to also use the external dotted class name instead. ~~For this fix I > changed the `Closure` used for finding classes to instead use external names, > and also swapped the output print to use the external name.~~ I added a > conversion from external dotted names to internal slashed names before we > start searching for classes. That way we avoid comparing strings and avoid > allocations from calls to `external_name()`. As a side effect, this now works > on both internal and external names, as slashes are left untouched. > > Testing: > - Tier 1 > - Manual inspection with `jcmd` > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Casper Norrbin has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits: - Merge branch 'lworld' into print_class_layout_external_names - merge miss - indent fix - Merge branch 'lworld' into print_class_layout_external_names - feedback - feedback fixes - change print_class_layout to use external class names ------------- Changes: https://git.openjdk.org/valhalla/pull/2375/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2375&range=04 Stats: 16 lines in 2 files changed: 8 ins; 3 del; 5 mod Patch: https://git.openjdk.org/valhalla/pull/2375.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2375/head:pull/2375 PR: https://git.openjdk.org/valhalla/pull/2375
