On Tue, 26 Nov 2024 08:57:04 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 >> ... > > Jonathan Lampérth has updated the pull request incrementally with one > additional commit since the last revision: > > feat: add Code: header for LNT and LVT For code size rendering, we currently don't even render it even if we print whole list of instructions; users have to know the size of the final instruction to deduce the code size. If we add a code size output, we should do it in another RFE. And this size is useful when people want their code to be below the FreqInlineSize. ------------- PR Comment: https://git.openjdk.org/jdk/pull/22359#issuecomment-2503863302