diff options
author | Stiver <stiver.mail@gmail.com> | 2014-10-06 04:27:26 +0200 |
---|---|---|
committer | Stiver <stiver.mail@gmail.com> | 2014-10-06 04:27:26 +0200 |
commit | 9723ab447587657d7c459567966df85c9e22204e (patch) | |
tree | ce4c55fdea8490696a7a9a19ae041b27a7737c33 /src/org/jetbrains/java/decompiler/main/ClassesProcessor.java | |
parent | 0c8508ff8a38669fa325b5a99da89dd9027951cc (diff) | |
download | fernflower-9723ab447587657d7c459567966df85c9e22204e.tar fernflower-9723ab447587657d7c459567966df85c9e22204e.tar.gz fernflower-9723ab447587657d7c459567966df85c9e22204e.tar.lz fernflower-9723ab447587657d7c459567966df85c9e22204e.tar.xz fernflower-9723ab447587657d7c459567966df85c9e22204e.zip |
Propagated bytecode-to-source tracer
Diffstat (limited to 'src/org/jetbrains/java/decompiler/main/ClassesProcessor.java')
-rw-r--r-- | src/org/jetbrains/java/decompiler/main/ClassesProcessor.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/org/jetbrains/java/decompiler/main/ClassesProcessor.java b/src/org/jetbrains/java/decompiler/main/ClassesProcessor.java index 61807b7..88e8688 100644 --- a/src/org/jetbrains/java/decompiler/main/ClassesProcessor.java +++ b/src/org/jetbrains/java/decompiler/main/ClassesProcessor.java @@ -262,10 +262,13 @@ public class ClassesProcessor { new ClassWriter().classToJava(root, classBuffer, 0); String lineSeparator = DecompilerContext.getNewLineSeparator(); + int total_offset_lines = 0; int index = cl.qualifiedName.lastIndexOf("/"); if (index >= 0) { + total_offset_lines++; String packageName = cl.qualifiedName.substring(0, index).replace('/', '.'); + buffer.append("package "); buffer.append(packageName); buffer.append(";"); @@ -273,15 +276,20 @@ public class ClassesProcessor { buffer.append(lineSeparator); } - if (importCollector.writeImports(buffer)) { + int import_lines_written = importCollector.writeImports(buffer); + if (import_lines_written > 0) { buffer.append(lineSeparator); + total_offset_lines += import_lines_written + 1; } buffer.append(classBuffer); if(DecompilerContext.getOption(IFernflowerPreferences.BYTECODE_SOURCE_MAPPING)) { + BytecodeSourceMapper mapper = DecompilerContext.getBytecodeSourceMapper(); + mapper.addTotalOffset(total_offset_lines); + buffer.append(lineSeparator); - DecompilerContext.getBytecodeSourceMapper().dumpMapping(classBuffer); + mapper.dumpMapping(buffer); } } finally { |