diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 2c6f93e7..ce734fa0 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -663,7 +663,9 @@ class Scanner3(Scanner): if not jump_back: return - jump_back += 2 # FIXME ??? + jb_inst = self.get_inst(jump_back) + jump_back = self.next_offset(jb_inst.opcode, jump_back) + if_offset = None if code[self.prev_op[next_line_byte]] not in self.pop_jump_tf: if_offset = self.prev[next_line_byte] diff --git a/uncompyle6/scanners/scanner30.py b/uncompyle6/scanners/scanner30.py index afcf3dbd..ddc8259f 100644 --- a/uncompyle6/scanners/scanner30.py +++ b/uncompyle6/scanners/scanner30.py @@ -85,7 +85,9 @@ class Scanner30(Scanner3): if not jump_back: return - jump_back += 2 # FIXME ??? + jb_inst = self.get_inst(jump_back) + jump_back = self.next_offset(jb_inst.opcode, jump_back) + if_offset = None if code[self.prev_op[next_line_byte]] not in JUMP_TF: if_offset = self.prev[next_line_byte]