java-decompiler: test fix
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 17 Oct 2014 18:14:28 +0000 (20:14 +0200)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 17 Oct 2014 18:14:28 +0000 (20:14 +0200)
plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/collectors/BytecodeSourceMapper.java
plugins/java-decompiler/engine/testData/results/TestClassSimpleBytecodeMapping.dec

index ad61f925c2801caf442a020c1a4cce228c9b1707..ce328a9a63b765b17165e35879157ef6874ca36a 100644 (file)
@@ -29,7 +29,7 @@ public class BytecodeSourceMapper {
   private final Map<String, Map<String, Map<Integer, Integer>>> mapping = new LinkedHashMap<String, Map<String, Map<Integer, Integer>>>();
 
   // original line to decompiled line
-  private final Map<Integer, Integer> linesMapping = new LinkedHashMap<Integer, Integer>();
+  private final Map<Integer, Integer> linesMapping = new HashMap<Integer, Integer>();
 
   public void addMapping(String className, String methodName, int bytecodeOffset, int sourceLine) {
     Map<String, Map<Integer, Integer>> class_mapping = mapping.get(className);
@@ -56,6 +56,10 @@ public class BytecodeSourceMapper {
   }
 
   public void dumpMapping(TextBuffer buffer, boolean offsetsToHex) {
+    if (mapping.isEmpty() && linesMapping.isEmpty()) {
+      return;
+    }
+
     String lineSeparator = DecompilerContext.getNewLineSeparator();
 
     for (Entry<String, Map<String, Map<Integer, Integer>>> class_entry : mapping.entrySet()) {
@@ -91,9 +95,9 @@ public class BytecodeSourceMapper {
 
     // lines mapping
     buffer.append("Lines mapping:").appendLineSeparator();
-    int[] mapping = getOriginalLinesMapping();
-    for (int i = 0; i < mapping.length; i += 2) {
-      buffer.append(mapping[i]).append(" <-> ").append(mapping[i + 1]).appendLineSeparator();
+    Map<Integer, Integer> sorted = new TreeMap<Integer, Integer>(linesMapping);
+    for (Entry<Integer, Integer> entry : sorted.entrySet()) {
+      buffer.append(entry.getKey()).append(" <-> ").append(entry.getValue()).appendLineSeparator();
     }
   }
 
index 9dd881c3ffceda4857a28c78071a558bec75bb38..e5dfb1c8a344edf3616ffe98bd4132d3fc8b0fd7 100644 (file)
@@ -58,12 +58,12 @@ class 'pkg/TestClassSimpleBytecodeMapping' {
 }
 
 Lines mapping:
-17 <-> 8
-21 <-> 11
-22 <-> 12
-23 <-> 13
-25 <-> 15
-26 <-> 16
-12 <-> 5
-14 <-> 6
-31 <-> 21
+12 <-> 2
+14 <-> 3
+17 <-> 5
+21 <-> 8
+22 <-> 9
+23 <-> 10
+25 <-> 12
+26 <-> 13
+31 <-> 18