On Fri, 25 Oct 2024 09:28:53 GMT, Jonathan Lampérth <d...@openjdk.org> wrote:
>> This PR includes changes to ensure `Code:` block indentation in `javap`for >> the `-verbose` case and non `-verbose` case is the same, which currently >> does not hold. >> >> Current behaviour of `javap` differs with and without `-verbose` in the >> following way: >> **Command**: `javap -c -XDdetails:stackMaps A.class` >> >> Without `-verbose` >> >> >> ... >> public void a(); >> Code: >> 0: iconst_0 >> 1: istore_1 >> StackMap locals: this int >> StackMap stack: >> ... >> >> >> With `-verbose` >> >> >> ... >> public void a(); >> descriptor: ()V >> flags: (0x0001) ACC_PUBLIC >> Code: >> stack=2, locals=2, args_size=1 >> 0: iconst_0 >> 1: istore_1 >> StackMap locals: this int >> StackMap stack: >> ... >> >> >> With `-verbose` all contents of the `Code:` section include an extra (2 >> space) indent, which is missing in the non `-verbose` case. This is because >> the `CodeWriter` is called via `CoderWriter.write(...)` in the `-verbose` >> case, which wraps the `Code:` block in `indent(+1);...indent(-1)`. >> >> In the non-verbose case this call is circumvented and a simplified version >> of `CoderWriter.write(...)` is included directly in >> `ClassWriter.writeMethod`. >> >> --- >> >> Alternatively to keep the logic within `CodeWriter` with the goal of keeping >> the logic for `-verbose` and non `-verbose` in the same place one could add >> `CodeWriter.writeSimple(...)`. >> >> >> void writeSimple(CodeAttribute attr) { >> println("Code:"); >> indent(+1); >> writeInstrs(attr); >> writeExceptionTable(attr); >> indent(-1); >> } >> >> >> --- >> >> Note: Test setup is inspired by existing tests: >> [T6622232.java](https://github.com/openjdk/jdk/blob/master/test/langtools/tools/javap/T6622232.java) >> and >> [8244573](https://github.com/openjdk/jdk/blob/master/test/langtools/tools/javap/8244573) > > Jonathan Lampérth has updated the pull request incrementally with two > additional commits since the last revision: > > - adress feedback in implementation > - address feedback in tests @jonath4ndev Your change (at version bd6372ce02098c89abbf54e198faf2180fba0520) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21685#issuecomment-2440819902