IDEA-131754 Catch and finally blocks have no line information

master
Egor.Ushakov 10 years ago
parent 5a96486853
commit 9b32709856
  1. 3
      src/org/jetbrains/java/decompiler/modules/code/DeadCodeHelper.java
  2. 10
      testData/results/TestClassLoop.dec
  3. 11
      testData/results/TestClassSimpleBytecodeMapping.dec
  4. 5
      testData/results/TestClassVar.dec
  5. 1
      testData/results/TestSynchronizedMapping.dec
  6. 19
      testData/results/TestTryCatchFinally.dec

@ -1,5 +1,5 @@
/* /*
* Copyright 2000-2014 JetBrains s.r.o. * Copyright 2000-2015 JetBrains s.r.o.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -416,6 +416,7 @@ public class DeadCodeHelper {
if (sameRanges) { if (sameRanges) {
seq.addSequence(next.getSeq()); seq.addSequence(next.getSeq());
block.getInstrOldOffsets().addAll(next.getInstrOldOffsets());
next.getSeq().clear(); next.getSeq().clear();
removeEmptyBlock(graph, next, true); removeEmptyBlock(graph, next, true);

@ -16,7 +16,7 @@ public class TestClassLoop {
return; return;
} }
} finally { } finally {
System.out.println("1"); System.out.println("1");// 38
} }
} }
} }
@ -30,7 +30,7 @@ public class TestClassLoop {
System.out.println("1");// 49 System.out.println("1");// 49
break; break;
} finally { } finally {
if(var0) { if(var0) {// 52
System.out.println("3");// 53 System.out.println("3");// 53
continue; continue;
} }
@ -54,6 +54,9 @@ class 'pkg/TestClassLoop' {
4 10 4 10
d 10 d 10
f 14 f 14
26 18
27 18
2a 18
} }
method 'testFinallyContinue ()V' { method 'testFinallyContinue ()V' {
@ -64,6 +67,7 @@ class 'pkg/TestClassLoop' {
e 29 e 29
11 29 11 29
13 29 13 29
26 32
2a 33 2a 33
2d 33 2d 33
2f 33 2f 33
@ -74,6 +78,8 @@ Lines mapping:
23 <-> 6 23 <-> 6
29 <-> 11 29 <-> 11
33 <-> 15 33 <-> 15
38 <-> 19
45 <-> 25 45 <-> 25
49 <-> 30 49 <-> 30
52 <-> 33
53 <-> 34 53 <-> 34

@ -22,9 +22,9 @@ public class TestClassSimpleBytecodeMapping {
try { try {
Integer.parseInt(var1);// 34 Integer.parseInt(var1);// 34
} catch (Exception var6) { } catch (Exception var6) {
System.out.println(var6); System.out.println(var6);// 36
} finally { } finally {
System.out.println("Finally"); System.out.println("Finally");// 38
} }
} }
@ -80,6 +80,11 @@ class 'pkg/TestClassSimpleBytecodeMapping' {
method 'test2 (Ljava/lang/String;)V' { method 'test2 (Ljava/lang/String;)V' {
1 22 1 22
11 24
15 24
23 26
24 26
27 26
} }
method 'run (Ljava/lang/Runnable;)V' { method 'run (Ljava/lang/Runnable;)V' {
@ -114,6 +119,8 @@ Lines mapping:
27 <-> 16 27 <-> 16
28 <-> 17 28 <-> 17
34 <-> 23 34 <-> 23
36 <-> 25
38 <-> 27
44 <-> 44 44 <-> 44
49 <-> 33 49 <-> 33
54 <-> 38 54 <-> 38

@ -9,7 +9,7 @@ public class TestClassVar {
try { try {
System.out.println();// 29 System.out.println();// 29
} finally { } finally {
if(this.field_boolean) { if(this.field_boolean) {// 32
System.out.println();// 33 System.out.println();// 33
} }
@ -46,6 +46,8 @@ class 'pkg/TestClassVar' {
3 7 3 7
8 9 8 9
b 9 b 9
1f 11
20 11
26 12 26 12
29 12 29 12
} }
@ -73,6 +75,7 @@ class 'pkg/TestClassVar' {
Lines mapping: Lines mapping:
26 <-> 8 26 <-> 8
29 <-> 10 29 <-> 10
32 <-> 12
33 <-> 13 33 <-> 13
40 <-> 22 40 <-> 22
45 <-> 26 45 <-> 26

@ -16,6 +16,7 @@ class 'pkg/TestSynchronizedMapping' {
method 'test (I)I' { method 'test (I)I' {
3 4 3 4
5 5 5 5
a 5
} }
method 'test2 (Ljava/lang/String;)V' { method 'test2 (Ljava/lang/String;)V' {

@ -11,7 +11,7 @@ public class TestTryCatchFinally {
; ;
} }
} finally { } finally {
System.out.println("finally"); System.out.println("finally");// 34
} }
} }
@ -31,9 +31,9 @@ public class TestTryCatchFinally {
int var2 = Integer.parseInt(var1);// 51 int var2 = Integer.parseInt(var1);// 51
return var2; return var2;
} catch (Exception var6) { } catch (Exception var6) {
System.out.println("Error" + var6); System.out.println("Error" + var6);// 53
} finally { } finally {
System.out.println("Finally"); System.out.println("Finally");// 55
} }
return -1; return -1;
@ -48,6 +48,9 @@ class 'pkg/TestTryCatchFinally' {
14 8 14 8
17 8 17 8
19 8 19 8
2b 13
2d 13
30 13
} }
method 'foo (I)I' { method 'foo (I)I' {
@ -63,15 +66,25 @@ class 'pkg/TestTryCatchFinally' {
method 'test (Ljava/lang/String;)I' { method 'test (Ljava/lang/String;)I' {
1 30 1 30
4 30 4 30
10 33
1a 33
23 33
26 33
34 35
35 35
38 35
} }
} }
Lines mapping: Lines mapping:
24 <-> 6 24 <-> 6
27 <-> 9 27 <-> 9
34 <-> 14
39 <-> 20 39 <-> 20
40 <-> 21 40 <-> 21
41 <-> 22 41 <-> 22
42 <-> 23 42 <-> 23
45 <-> 25 45 <-> 25
51 <-> 31 51 <-> 31
53 <-> 34
55 <-> 36

Loading…
Cancel
Save