summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java')
-rw-r--r--src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java b/src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java
index 343d99e..ebe2bd7 100644
--- a/src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java
+++ b/src/org/jetbrains/java/decompiler/modules/decompiler/stats/IfStatement.java
@@ -211,11 +211,11 @@ public class IfStatement extends Statement {
if (isLabeled()) {
buf.append(indstr).append("label").append(this.id).append(":").append(new_line_separator);
- tracer.incrementSourceLine();
+ tracer.incrementCurrentSourceLine();
}
buf.append(indstr).append(headexprent.get(0).toJava(indent, tracer)).append(" {").append(new_line_separator);
- tracer.incrementSourceLine();
+ tracer.incrementCurrentSourceLine();
if (ifstat == null) {
buf.append(InterpreterUtil.getIndentString(indent + 1));
@@ -235,7 +235,7 @@ public class IfStatement extends Statement {
}
}
buf.append(";").append(new_line_separator);
- tracer.incrementSourceLine();
+ tracer.incrementCurrentSourceLine();
}
else {
buf.append(ExprProcessor.jmpWrapper(ifstat, indent + 1, true, tracer));
@@ -258,11 +258,15 @@ public class IfStatement extends Statement {
elseif = true;
}
else {
- String content = ExprProcessor.jmpWrapper(elsestat, indent + 1, false, tracer);
+ BytecodeMappingTracer else_tracer = new BytecodeMappingTracer(tracer.getCurrentSourceLine());
+ String content = ExprProcessor.jmpWrapper(elsestat, indent + 1, false, else_tracer);
if (content.length() > 0) {
buf.append(indstr).append("} else {").append(new_line_separator);
- tracer.incrementSourceLine(); // FIXME: wrong order
+
+ else_tracer.shiftSourceLines(1);
+ tracer.setCurrentSourceLine(else_tracer.getCurrentSourceLine() + 1);
+ tracer.addTracer(else_tracer);
buf.append(content);
}
@@ -271,7 +275,7 @@ public class IfStatement extends Statement {
if (!elseif) {
buf.append(indstr).append("}").append(new_line_separator);
- tracer.incrementSourceLine();
+ tracer.incrementCurrentSourceLine();
}
return buf.toString();