summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
diff options
context:
space:
mode:
authorStiver <stiver.mail@gmail.com>2014-10-06 04:27:26 +0200
committerStiver <stiver.mail@gmail.com>2014-10-06 04:27:26 +0200
commit9723ab447587657d7c459567966df85c9e22204e (patch)
treece4c55fdea8490696a7a9a19ae041b27a7737c33 /src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
parent0c8508ff8a38669fa325b5a99da89dd9027951cc (diff)
downloadfernflower-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/collectors/BytecodeMappingTracer.java')
-rw-r--r--src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
index 2b60f7e..95321e5 100644
--- a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
+++ b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
@@ -1,26 +1,53 @@
package org.jetbrains.java.decompiler.main.collectors;
import java.util.HashMap;
+import java.util.Set;
public class BytecodeMappingTracer {
private int current_sourceline;
-
+
// bytecode offset, source line
- private HashMap<Integer, Integer> mapping;
-
+ private HashMap<Integer, Integer> mapping = new HashMap<Integer, Integer>();
+
+ public BytecodeMappingTracer() {}
+
+ public BytecodeMappingTracer(int initial_source_line) {
+ current_sourceline = initial_source_line;
+ }
+
public void incrementSourceLine() {
current_sourceline++;
}
-
+
+ public void incrementSourceLine(int number_lines) {
+ current_sourceline += number_lines;
+ }
+
public void addMapping(int bytecode_offset) {
if(!mapping.containsKey(bytecode_offset)) {
mapping.put(bytecode_offset, current_sourceline);
}
}
+ public void addMapping(Set<Integer> bytecode_offsets) {
+ if(bytecode_offsets != null) {
+ for(Integer bytecode_offset : bytecode_offsets) {
+ addMapping(bytecode_offset);
+ }
+ }
+ }
+
public HashMap<Integer, Integer> getMapping() {
return mapping;
- }
-
+ }
+
+ public int getCurrentSourceline() {
+ return current_sourceline;
+ }
+
+ public void setCurrentSourceline(int current_sourceline) {
+ this.current_sourceline = current_sourceline;
+ }
+
}