diff --git a/deob/src/main/java/dev/openrs2/deob/transform/OpaquePredicateTransformer.kt b/deob/src/main/java/dev/openrs2/deob/transform/OpaquePredicateTransformer.kt index b833b9f1..6084d4f8 100644 --- a/deob/src/main/java/dev/openrs2/deob/transform/OpaquePredicateTransformer.kt +++ b/deob/src/main/java/dev/openrs2/deob/transform/OpaquePredicateTransformer.kt @@ -88,13 +88,17 @@ class OpaquePredicateTransformer : Transformer() { // find and fix opaque predicates for (match in OPAQUE_PREDICATE_MATCHER.match(method).filter { isOpaquePredicate(method, it) }) { val branch = match[1] as JumpInsnNode - if (branch.opcode == Opcodes.IFEQ) { - // branch is always taken - method.instructions.remove(match[0]) - branch.opcode = Opcodes.GOTO - } else { // IFNE - // branch is never taken - match.forEach(method.instructions::remove) + when (branch.opcode) { + Opcodes.IFEQ -> { + // branch is always taken + method.instructions.remove(match[0]) + branch.opcode = Opcodes.GOTO + } + Opcodes.IFNE -> { + // branch is never taken + match.forEach(method.instructions::remove) + } + else -> error("Invalid opcode") } opaquePredicates++