From 0e1046d457b66171bfe3e6d7f1e0b612a4b05ba5 Mon Sep 17 00:00:00 2001 From: Graham Date: Sun, 4 Jul 2021 14:28:41 +0100 Subject: [PATCH] Fix {read,write}LineNumbers Signed-off-by: Graham --- .../kotlin/org/openrs2/asm/packclass/PackClass.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/asm/src/main/kotlin/org/openrs2/asm/packclass/PackClass.kt b/asm/src/main/kotlin/org/openrs2/asm/packclass/PackClass.kt index 61c9e93c..9efe9608 100644 --- a/asm/src/main/kotlin/org/openrs2/asm/packclass/PackClass.kt +++ b/asm/src/main/kotlin/org/openrs2/asm/packclass/PackClass.kt @@ -859,11 +859,12 @@ public object PackClass { ): Array { require(attributes.size == pcs.size) + var line = 0 + return Array(attributes.size) { i -> if (attributes[i].contains(ConstantPool.CODE)) { - var line = 0 IntArray(pcs[i]!!.size) { - line += buf.readUnsignedShortSmart() + line += buf.readUnsignedShort() line and 0xFFFF } } else { @@ -1442,20 +1443,20 @@ public object PackClass { } private fun writeLineNumbers(buf: ByteBuf, clazz: ClassNode) { + var prevLine = 0 + for (method in clazz.methods) { if (method.instructions.size() == 0) { continue } - var prevLine = 0 - for (insn in method.instructions) { if (insn !is LineNumberNode) { continue } val line = insn.line - buf.writeUnsignedShortSmart(line - prevLine) + buf.writeShort(line - prevLine) prevLine = line } }