On Mon, 25 Nov 2024 12:57:18 GMT, Jonathan Lampérth <d...@openjdk.org> wrote:
> Very similar and related to: https://bugs.openjdk.org/browse/JDK-8034066 > > This PR includes changes to ensure the indentation of `LineNumberTable` and > `LocalVariableTable` behave in the same way both for the `javap -verbose` and > `javap -l -c` case. Prior to this PR, for the `javap -l -c` case the > `LineNumberTable` and `LocalVariableTable` attributes are not indented with > regard to the `Code: ` header. > > The only case, where no extra indentation is added is for `javap -l` without > `-c` -- As it does not make sense to indent if there is no `Code:` header to > indent relative to. I am not sure if there is a use case for `-l` without > `-c`, but would leave this functionality as is. > > ## Current behaviour of javap previously differed with and without -verbose > in the following way: > > ### Case: `javap -l -c EmptyLoop.class` > > > ... > public void emptyLoop(); > Code: > 0: iconst_0 > ... > 14: return > LineNumberTable: > line 3: 0 > line 5: 14 > ... > > > ### Case: `javap -verbose EmptyLoop.class` > > > ... > public void emptyLoop(); > descriptor: ()V > flags: (0x0001) ACC_PUBLIC > Code: > stack=2, locals=2, args_size=1 > 0: iconst_0 > ... > 14: return > LineNumberTable: > line 3: 0 > line 5: 14 > ... > > > ## New behaviour: > ### Case: `javap -l -c EmptyLoop.class` > > ... > public void emptyLoop(); > Code: > 0: iconst_0 > ... > 14: return > LineNumberTable: > line 3: 0 > line 5: 14 > ... > > > > ## Open Questions > ### Add code header for only `-l` case? > Currently for `-l` without `-c` things look as follows: > > > ... > public void emptyLoop(); > LineNumberTable: > line 3: 0 > line 5: 14 > ... > > > One could also imagine making the output: > > ... > public void emptyLoop(); > Code: > LineNumberTable: > line 3: 0 > line 5: 14 > ... Marked as reviewed by liach (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/22359#pullrequestreview-2459492162