From c6b3e20b4729410bd3b5724d3f73732dd0dfdb3c Mon Sep 17 00:00:00 2001 From: rocky Date: Sun, 24 Jun 2018 18:23:38 -0400 Subject: [PATCH] Remove some of the 3.0 3.x instruction hackiness --- uncompyle6/scanners/scanner3.py | 4 +++- uncompyle6/scanners/scanner30.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) 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]