> 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

Reply via email to