Community
Participate
Working Groups
When synthetic arguments are used or the code is compiled without local variable table, the disassembler doesn't specify what local is loaded on the stack. For example, we display: // Method descriptor #21 (IIIIDDJI)V // Stack: 5, Locals: 12 public void foo(int arg0, int arg1, int arg2, int arg3, double arg4, double arg5, long arg6, int arg7); 0 getstatic System.out : PrintStream [22] 3 lload 9 5 iload 11 7 i2l 8 ladd 9 invokevirtual PrintStream.println(long) : void [28] 12 return instead of: // Method descriptor #21 (IIIIDDJI)V // Stack: 5, Locals: 12 public void foo(int arg0, int arg1, int arg2, int arg3, double arg4, double arg5, long arg6, int arg7); 0 getstatic System.out : PrintStream [22] 3 lload 9 [arg6] 5 iload 11 [arg7] 7 i2l 8 ladd 9 invokevirtual PrintStream.println(long) : void [28] 12 return
Created attachment 107087 [details] Proposed fix + updated regression tests
Released for 3.5M1.
Verified for 3.5M1 using I20080805-1307