-
Bug
-
Resolution: Fixed
-
P3
-
asm_tools_7.0, asm_tools_8.0
-
None
if StackMapTable: number_of_entries = 6
frame_type = 0 /* same */
frame_type = 55 /* same */
frame_type = 23 /* same */
frame_type = 23 /* same */
frame_type = 23 /* same */
frame_type = 7 /* same */
the output jasm file is:
private Method #294:#6 // recoverField:"()V"
throws #80, #371 // org/openjdk/asmtools/common/SyntaxError, java/io/IOException
stack 3 locals 1
{
var 0 #429:#430; // this:"Lorg/openjdk/asmtools/jcoder/Jcoder;"
0: stack_frame_type same;
getstatic #87; // Field Jcoder$1.$SwitchMap$org$openjdk$asmtools$jcoder$JcodTokens$Token:"[I"
3: aload_0;
4: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
7: getfield #46; // Field Scanner.token:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
10: invokevirtual #93; // Method JcodTokens$Token.ordinal:"()I"
13: iaload;
14: tableswitch { // 1 to 7
1: 56;
2: 80;
3: 104;
4: 128;
5: 128;
6: 128;
7: 128;
default: 136 };
56: aload_0;
57: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
60: getstatic #96; // Field JcodTokens$Token.LBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
63: getstatic #99; // Field JcodTokens$Token.RBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
66: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
69: aload_0;
70: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
73: invokevirtual #83; // Method Scanner.scan:"()I"
76: pop;
77: goto 0;
80: aload_0;
81: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
84: getstatic #106; // Field JcodTokens$Token.LPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
87: getstatic #109; // Field JcodTokens$Token.RPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
90: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
93: aload_0;
94: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
97: invokevirtual #83; // Method Scanner.scan:"()I"
100: pop;
101: goto 0;
104: aload_0;
105: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
108: getstatic #112; // Field JcodTokens$Token.LSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
111: getstatic #115; // Field JcodTokens$Token.RSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
114: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
117: aload_0;
118: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
121: invokevirtual #83; // Method Scanner.scan:"()I"
124: pop;
125: goto 0;
128: new #80; // class org/openjdk/asmtools/common/SyntaxError
131: dup;
132: invokespecial #82; // Method org/openjdk/asmtools/common/SyntaxError."<init>":"()V"
135: stack_frame_type same;
athrow;
136: aload_0;
137: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
140: invokevirtual #83; // Method Scanner.scan:"()I"
143: pop;
144: goto 0;
endvar 0;
}
although expected method should be:
private Method #294:#6 // recoverField:"()V"
throws #80, #371 // org/openjdk/asmtools/common/SyntaxError, java/io/IOException
stack 3 locals 1
{
var 0 #429:#430; // this:"Lorg/openjdk/asmtools/jcoder/Jcoder;"
0: stack_frame_type same;
getstatic #87; // Field Jcoder$1.$SwitchMap$org$openjdk$asmtools$jcoder$JcodTokens$Token:"[I"
3: aload_0;
4: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
7: getfield #46; // Field Scanner.token:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
10: invokevirtual #93; // Method JcodTokens$Token.ordinal:"()I"
13: iaload;
14: tableswitch { // 1 to 7
1: 56;
2: 80;
3: 104;
4: 128;
5: 128;
6: 128;
7: 128;
default: 136 };
56: stack_frame_type same;
aload_0;
57: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
60: getstatic #96; // Field JcodTokens$Token.LBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
63: getstatic #99; // Field JcodTokens$Token.RBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
66: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
69: aload_0;
70: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
73: invokevirtual #83; // Method Scanner.scan:"()I"
76: pop;
77: goto 0;
80: stack_frame_type same;
aload_0;
81: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
84: getstatic #106; // Field JcodTokens$Token.LPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
87: getstatic #109; // Field JcodTokens$Token.RPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
90: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
93: aload_0;
94: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
97: invokevirtual #83; // Method Scanner.scan:"()I"
100: pop;
101: goto 0;
104: stack_frame_type same;
aload_0;
105: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
108: getstatic #112; // Field JcodTokens$Token.LSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
111: getstatic #115; // Field JcodTokens$Token.RSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
114: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
117: aload_0;
118: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
121: invokevirtual #83; // Method Scanner.scan:"()I"
124: pop;
125: goto 0;
128: stack_frame_type same;
new #80; // class org/openjdk/asmtools/common/SyntaxError
131: dup;
132: invokespecial #82; // Method org/openjdk/asmtools/common/SyntaxError."<init>":"()V"
135: athrow;
136: stack_frame_type same;
aload_0;
137: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
140: invokevirtual #83; // Method Scanner.scan:"()I"
143: pop;
144: goto 0;
endvar 0;
}
frame_type = 0 /* same */
frame_type = 55 /* same */
frame_type = 23 /* same */
frame_type = 23 /* same */
frame_type = 23 /* same */
frame_type = 7 /* same */
the output jasm file is:
private Method #294:#6 // recoverField:"()V"
throws #80, #371 // org/openjdk/asmtools/common/SyntaxError, java/io/IOException
stack 3 locals 1
{
var 0 #429:#430; // this:"Lorg/openjdk/asmtools/jcoder/Jcoder;"
0: stack_frame_type same;
getstatic #87; // Field Jcoder$1.$SwitchMap$org$openjdk$asmtools$jcoder$JcodTokens$Token:"[I"
3: aload_0;
4: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
7: getfield #46; // Field Scanner.token:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
10: invokevirtual #93; // Method JcodTokens$Token.ordinal:"()I"
13: iaload;
14: tableswitch { // 1 to 7
1: 56;
2: 80;
3: 104;
4: 128;
5: 128;
6: 128;
7: 128;
default: 136 };
56: aload_0;
57: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
60: getstatic #96; // Field JcodTokens$Token.LBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
63: getstatic #99; // Field JcodTokens$Token.RBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
66: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
69: aload_0;
70: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
73: invokevirtual #83; // Method Scanner.scan:"()I"
76: pop;
77: goto 0;
80: aload_0;
81: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
84: getstatic #106; // Field JcodTokens$Token.LPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
87: getstatic #109; // Field JcodTokens$Token.RPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
90: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
93: aload_0;
94: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
97: invokevirtual #83; // Method Scanner.scan:"()I"
100: pop;
101: goto 0;
104: aload_0;
105: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
108: getstatic #112; // Field JcodTokens$Token.LSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
111: getstatic #115; // Field JcodTokens$Token.RSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
114: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
117: aload_0;
118: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
121: invokevirtual #83; // Method Scanner.scan:"()I"
124: pop;
125: goto 0;
128: new #80; // class org/openjdk/asmtools/common/SyntaxError
131: dup;
132: invokespecial #82; // Method org/openjdk/asmtools/common/SyntaxError."<init>":"()V"
135: stack_frame_type same;
athrow;
136: aload_0;
137: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
140: invokevirtual #83; // Method Scanner.scan:"()I"
143: pop;
144: goto 0;
endvar 0;
}
although expected method should be:
private Method #294:#6 // recoverField:"()V"
throws #80, #371 // org/openjdk/asmtools/common/SyntaxError, java/io/IOException
stack 3 locals 1
{
var 0 #429:#430; // this:"Lorg/openjdk/asmtools/jcoder/Jcoder;"
0: stack_frame_type same;
getstatic #87; // Field Jcoder$1.$SwitchMap$org$openjdk$asmtools$jcoder$JcodTokens$Token:"[I"
3: aload_0;
4: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
7: getfield #46; // Field Scanner.token:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
10: invokevirtual #93; // Method JcodTokens$Token.ordinal:"()I"
13: iaload;
14: tableswitch { // 1 to 7
1: 56;
2: 80;
3: 104;
4: 128;
5: 128;
6: 128;
7: 128;
default: 136 };
56: stack_frame_type same;
aload_0;
57: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
60: getstatic #96; // Field JcodTokens$Token.LBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
63: getstatic #99; // Field JcodTokens$Token.RBRACE:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
66: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
69: aload_0;
70: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
73: invokevirtual #83; // Method Scanner.scan:"()I"
76: pop;
77: goto 0;
80: stack_frame_type same;
aload_0;
81: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
84: getstatic #106; // Field JcodTokens$Token.LPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
87: getstatic #109; // Field JcodTokens$Token.RPAREN:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
90: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
93: aload_0;
94: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
97: invokevirtual #83; // Method Scanner.scan:"()I"
100: pop;
101: goto 0;
104: stack_frame_type same;
aload_0;
105: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
108: getstatic #112; // Field JcodTokens$Token.LSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
111: getstatic #115; // Field JcodTokens$Token.RSQBRACKET:"Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;"
114: invokevirtual #102; // Method Scanner.match:"(Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;Lorg/openjdk/asmtools/jcoder/JcodTokens$Token;)V"
117: aload_0;
118: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
121: invokevirtual #83; // Method Scanner.scan:"()I"
124: pop;
125: goto 0;
128: stack_frame_type same;
new #80; // class org/openjdk/asmtools/common/SyntaxError
131: dup;
132: invokespecial #82; // Method org/openjdk/asmtools/common/SyntaxError."<init>":"()V"
135: athrow;
136: stack_frame_type same;
aload_0;
137: getfield #31; // Field scanner:"Lorg/openjdk/asmtools/jcoder/Scanner;"
140: invokevirtual #83; // Method Scanner.scan:"()I"
143: pop;
144: goto 0;
endvar 0;
}
- links to
-
Review openjdk/asmtools/51