From 9723ab447587657d7c459567966df85c9e22204e Mon Sep 17 00:00:00 2001 From: Stiver Date: Mon, 6 Oct 2014 04:27:26 +0200 Subject: Propagated bytecode-to-source tracer --- src/org/jetbrains/java/decompiler/main/ClassesProcessor.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/org/jetbrains/java/decompiler/main/ClassesProcessor.java') 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 { -- cgit v1.2.3