diff options
author | akuznetsov <kuznet775@gmail.com> | 2024-09-28 22:06:53 +0400 |
---|---|---|
committer | akuznetsov <kuznet775@gmail.com> | 2024-09-28 22:06:53 +0400 |
commit | 4520f0398769cfe6d7b436843041e676ebd5c2f9 (patch) | |
tree | f7bd7e2eafc950d671a7db41bf05ae46c862321e /src/main/javassist/bytecode | |
parent | 3cf49c0e6a9a23eb609ef4831782f3f02124975c (diff) | |
download | javassist-4520f0398769cfe6d7b436843041e676ebd5c2f9.tar.gz javassist-4520f0398769cfe6d7b436843041e676ebd5c2f9.zip |
Add test for 16th line & fix
Diffstat (limited to 'src/main/javassist/bytecode')
-rw-r--r-- | src/main/javassist/bytecode/LineNumberAttributeBuilder.java | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/main/javassist/bytecode/LineNumberAttributeBuilder.java b/src/main/javassist/bytecode/LineNumberAttributeBuilder.java index 52d9d0c8..25182e2d 100644 --- a/src/main/javassist/bytecode/LineNumberAttributeBuilder.java +++ b/src/main/javassist/bytecode/LineNumberAttributeBuilder.java @@ -11,15 +11,15 @@ import java.util.Map; public class LineNumberAttributeBuilder { private final HashMap<Integer, Integer> map = new HashMap<>(); - public void put(int newPc, ASTree tree) { + public void put(int pc, ASTree tree) { if (tree != null) - put(newPc, tree.getLineNumber()); + put(pc, tree.getLineNumber()); } - private void put(int newPc, int lineNum) { - Integer pc = map.get(lineNum); - if (pc == null || newPc < pc) { - map.put(lineNum, newPc); + private void put(int pc, int lineNum) { + Integer oldLineNum = map.get(pc); + if (oldLineNum == null || lineNum > oldLineNum) { + map.put(pc, lineNum); } } @@ -29,8 +29,8 @@ public class LineNumberAttributeBuilder { DataOutputStream dos = new DataOutputStream(bos)) { dos.writeShort(size); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { - dos.writeShort(entry.getValue()); dos.writeShort(entry.getKey()); + dos.writeShort(entry.getValue()); } return new LineNumberAttribute(cp, bos.toByteArray()); } catch (IOException e) { |