decompiler: major line numbers fixes

This commit is contained in:
Egor.Ushakov
2014-12-25 21:36:19 +03:00
parent 4a6a658b4c
commit 4ee8ad716d
49 changed files with 1124 additions and 142 deletions

View File

@@ -85,6 +85,7 @@ public class VarExprent extends Exprent {
if (classDef) {
ClassNode child = DecompilerContext.getClassProcessor().getMapRootClasses().get(varType.value);
new ClassWriter().classToJava(child, buffer, indent, tracer);
tracer.incrementCurrentSourceLine(buffer.countLines());
}
else {
String name = null;

View File

@@ -256,14 +256,13 @@ public class IfStatement extends Statement {
elseif = true;
}
else {
BytecodeMappingTracer else_tracer = new BytecodeMappingTracer(tracer.getCurrentSourceLine());
BytecodeMappingTracer else_tracer = new BytecodeMappingTracer(tracer.getCurrentSourceLine() + 1);
TextBuffer content = ExprProcessor.jmpWrapper(elsestat, indent + 1, false, else_tracer);
if (content.length() > 0) {
buf.appendIndent(indent).append("} else {").appendLineSeparator();
else_tracer.shiftSourceLines(1);
tracer.setCurrentSourceLine(else_tracer.getCurrentSourceLine() + 1);
tracer.setCurrentSourceLine(else_tracer.getCurrentSourceLine());
tracer.addTracer(else_tracer);
buf.append(content);