summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/main/collectors
diff options
context:
space:
mode:
authorStiver <stiver.mail@gmail.com>2014-10-07 07:31:22 +0200
committerStiver <stiver.mail@gmail.com>2014-10-07 07:31:22 +0200
commit9f9da912f666dc2d25b7ba7e03283f13b4c5b4bf (patch)
tree79cfac0861d24140bd8a3fa1f334fe3465260bed /src/org/jetbrains/java/decompiler/main/collectors
parentbef17b44fce71dfce6345f19695949eb4432e25d (diff)
downloadfernflower-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.java25
-rw-r--r--src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java2
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;