diff options
author | Stiver <stiver.mail@gmail.com> | 2014-10-07 07:31:22 +0200 |
---|---|---|
committer | Stiver <stiver.mail@gmail.com> | 2014-10-07 07:31:22 +0200 |
commit | 9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf (patch) | |
tree | 79cfac0861d24140bd8a3fa1f334fe3465260bed /src/org/jetbrains/java/decompiler/main/collectors | |
parent | bef17b44fce71dfce6345f19695949eb4432e25d (diff) | |
download | fernflower-9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf.tar fernflower-9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf.tar.gz fernflower-9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf.tar.lz fernflower-9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf.tar.xz fernflower-9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf.zip |
Fixed some errors in line counting
Diffstat (limited to 'src/org/jetbrains/java/decompiler/main/collectors')
-rw-r--r-- | src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java | 25 | ||||
-rw-r--r-- | src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java | 2 |
2 files changed, 22 insertions, 5 deletions
diff --git a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java index 95321e5..20af427 100644 --- a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java +++ b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java @@ -1,6 +1,7 @@ package org.jetbrains.java.decompiler.main.collectors; import java.util.HashMap; +import java.util.Map.Entry; import java.util.Set; public class BytecodeMappingTracer { @@ -16,14 +17,20 @@ public class BytecodeMappingTracer { current_sourceline = initial_source_line; } - public void incrementSourceLine() { + public void incrementCurrentSourceLine() { current_sourceline++; } - public void incrementSourceLine(int number_lines) { + public void incrementCurrentSourceLine(int number_lines) { current_sourceline += number_lines; } + public void shiftSourceLines(int shift) { + for(Entry<Integer, Integer> entry : mapping.entrySet()) { + entry.setValue(entry.getValue() + shift); + } + } + public void addMapping(int bytecode_offset) { if(!mapping.containsKey(bytecode_offset)) { mapping.put(bytecode_offset, current_sourceline); @@ -38,15 +45,25 @@ public class BytecodeMappingTracer { } } + public void addTracer(BytecodeMappingTracer tracer) { + if(tracer != null) { + for(Entry<Integer, Integer> entry : tracer.mapping.entrySet()) { + if(!mapping.containsKey(entry.getKey())) { + mapping.put(entry.getKey(), entry.getValue()); + } + } + } + } + public HashMap<Integer, Integer> getMapping() { return mapping; } - public int getCurrentSourceline() { + public int getCurrentSourceLine() { return current_sourceline; } - public void setCurrentSourceline(int current_sourceline) { + public void setCurrentSourceLine(int current_sourceline) { this.current_sourceline = current_sourceline; } diff --git a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java index f31394b..53f92b2 100644 --- a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java +++ b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java @@ -59,7 +59,7 @@ public class BytecodeSourceMapper { buffer.append(indentstr1 + "method " + method_entry.getKey() + "{" + lineSeparator); for(Entry<Integer, Integer> line : method_mapping.entrySet()) { - buffer.append(indentstr2 + line.getKey() + indentstr2 + line.getValue() + lineSeparator); + buffer.append(indentstr2 + line.getKey() + indentstr2 + (line.getValue() +offset_total) + lineSeparator); } buffer.append(indentstr1 + "}" + lineSeparator); is_first_method = false; |