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/collectors/BytecodeMappingTracer.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/collectors/BytecodeMappingTracer.java')
-rw-r--r-- | src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java | 39 |
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; + } + } |