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 > ... This pull request has now been integrated. Changeset: 1e3a0fdb Author: Jonathan Lampérth <jonathan.lampe...@oracle.com> Committer: Vicente Romero <vrom...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/1e3a0fdb5d14550de66faa8472c883a9990a87df Stats: 164 lines in 3 files changed: 146 ins; 11 del; 7 mod 8035271: Incorrect indentation of LineNumberTable/LocalVariableTable/Exception table/LocalVariableTypeTable/StackMapTable/RuntimeVisibleTypeAnnotations in verbose mode Reviewed-by: liach, jvernee ------------- PR: https://git.openjdk.org/jdk/pull/22359