decompiler: fixed bytecode mapping for anonymous classes

This commit is contained in:
Egor.Ushakov
2014-10-17 15:41:17 +04:00
parent b3681fe952
commit 32e7765874
9 changed files with 95 additions and 52 deletions

View File

@@ -3,6 +3,11 @@ package pkg;
public class TestClassSimpleBytecodeMapping {
public int test() {
System.out.println("before");
this.run(new Runnable() {
public void run() {
System.out.println("Runnable");
}
});
if(Math.random() > 0.0D) {
System.out.println("0");
return 0;
@@ -11,26 +16,42 @@ public class TestClassSimpleBytecodeMapping {
return 1;
}
}
void run(Runnable var1) {
var1.run();
}
}
class pkg/TestClassSimpleBytecodeMapping{
method run (Ljava/lang/Runnable;)V{
1 20
}
method test ()I{
0 4
3 4
5 4
8 5
b 5
c 5
d 5
10 6
13 6
15 6
18 7
19 7
1a 9
1d 9
1f 9
22 10
23 10
11 5
14 10
17 10
18 10
19 10
1c 11
1f 11
21 11
24 12
25 12
26 14
29 14
2b 14
2e 15
2f 15
}
}
class pkg/TestClassSimpleBytecodeMapping$1{
method run ()V{
0 7
3 7
5 7
}
}

View File

@@ -1,5 +1,8 @@
package pkg;
import java.lang.Override;
import java.lang.Runnable;
public class TestClassSimpleBytecodeMapping {
public TestClassSimpleBytecodeMapping() {}
@@ -7,7 +10,14 @@ public class TestClassSimpleBytecodeMapping {
public int test() {
System.out.println("before");
run(new Runnable() {
@Override
public void run() {
System.out.println("Runnable");
}
});
if(Math.random() > 0) {
System.out.println("0");
return 0;
@@ -17,4 +27,7 @@ public class TestClassSimpleBytecodeMapping {
}
}
void run(Runnable r) {
r.run();
}
}