From 27ab6fe2f588b8d3a516d1cbeeb93388fbdccafd Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 8 Jul 2017 20:41:46 -0400 Subject: [PATCH] Use xdis 3.5.0's opcode sets --- __pkginfo__.py | 2 +- uncompyle6/scanner.py | 4 ++-- uncompyle6/scanners/scanner2.py | 22 +++++++++++----------- uncompyle6/scanners/scanner26.py | 14 +++++++------- uncompyle6/scanners/scanner3.py | 4 ++-- uncompyle6/scanners/scanner30.py | 2 +- uncompyle6/scanners/tok.py | 4 ++-- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/__pkginfo__.py b/__pkginfo__.py index 9049f5ec..431307a0 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -40,7 +40,7 @@ entry_points = { ]} ftp_url = None install_requires = ['spark-parser >= 1.6.1, < 1.7.0', - 'xdis >= 3.4.0, < 3.5.0', 'six'] + 'xdis >= 3.5.0, < 3.6.0', 'six'] license = 'MIT' mailing_list = 'python-debugger@googlegroups.com' modname = 'uncompyle6' diff --git a/uncompyle6/scanner.py b/uncompyle6/scanner.py index 83e3581b..f66a477a 100755 --- a/uncompyle6/scanner.py +++ b/uncompyle6/scanner.py @@ -89,7 +89,7 @@ class Scanner(object): if op is None: op = self.code[pos] target = self.get_argument(pos) - if op in self.opc.hasjrel: + if op in self.opc.JREL_OPS: target += pos + 3 return target @@ -100,7 +100,7 @@ class Scanner(object): def print_bytecode(self): for i in self.op_range(0, len(self.code)): op = self.code[i] - if op in self.opc.hasjabs+self.opc.hasjrel: + if op in self.JUMP_OPs: dest = self.get_target(i, op) print('%i\t%s\t%i' % (i, self.opname[op], dest)) else: diff --git a/uncompyle6/scanners/scanner2.py b/uncompyle6/scanners/scanner2.py index 9e055333..cc20d5b8 100644 --- a/uncompyle6/scanners/scanner2.py +++ b/uncompyle6/scanners/scanner2.py @@ -189,7 +189,7 @@ class Scanner2(Scanner): if op == self.opc.EXTENDED_ARG: extended_arg = oparg * L65536 continue - if op in self.opc.hasconst: + if op in self.opc.CONST_OPS: const = co.co_consts[oparg] if iscode(const): oparg = const @@ -210,23 +210,23 @@ class Scanner2(Scanner): pattr = '' else: pattr = const - elif op in self.opc.hasname: + elif op in self.opc.NAME_OPS: pattr = names[oparg] - elif op in self.opc.hasjrel: + elif op in self.opc.JREL_OPS: # use instead: hasattr(self, 'patch_continue'): ? if self.version == 2.7: self.patch_continue(tokens, offset, op) pattr = repr(offset + 3 + oparg) - elif op in self.opc.hasjabs: + elif op in self.opc.JABS_OPS: # use instead: hasattr(self, 'patch_continue'): ? if self.version == 2.7: self.patch_continue(tokens, offset, op) pattr = repr(oparg) - elif op in self.opc.haslocal: + elif op in self.opc.LOCAL_OPS: pattr = varnames[oparg] - elif op in self.opc.hascompare: + elif op in self.opc.COMPARE_OPS: pattr = self.opc.cmp_op[oparg] - elif op in self.opc.hasfree: + elif op in self.opc.FREE_OPS: pattr = free[oparg] if op in self.varargs_ops: @@ -603,7 +603,7 @@ class Scanner2(Scanner): if test == offset: loop_type = 'while 1' - elif self.code[test] in self.opc.hasjabs + self.opc.hasjrel: + elif self.code[test] in self.opc.JUMP_OPs: self.ignore_if.add(test) test_target = self.get_target(test) if test_target > (jump_back+3): @@ -994,11 +994,11 @@ class Scanner2(Scanner): oparg = self.get_argument(offset) if label is None: - if op in self.opc.hasjrel and self.op_name(op) != 'FOR_ITER': - # if (op in self.opc.hasjrel and + if op in self.opc.JREL_OPS and self.op_name(op) != 'FOR_ITER': + # if (op in self.opc.JREL_OPS and # (self.version < 2.0 or op != self.opc.FOR_ITER)): label = offset + 3 + oparg - elif self.version == 2.7 and op in self.opc.hasjabs: + elif self.version == 2.7 and op in self.opc.JABS_OPS: if op in (self.opc.JUMP_IF_FALSE_OR_POP, self.opc.JUMP_IF_TRUE_OR_POP): if (oparg > offset): diff --git a/uncompyle6/scanners/scanner26.py b/uncompyle6/scanners/scanner26.py index fc80ca6c..0e412b3d 100755 --- a/uncompyle6/scanners/scanner26.py +++ b/uncompyle6/scanners/scanner26.py @@ -181,7 +181,7 @@ class Scanner26(scan.Scanner2): if op == self.opc.EXTENDED_ARG: extended_arg = oparg * L65536 continue - if op in self.opc.hasconst: + if op in self.opc.CONST_OPS: const = co.co_consts[oparg] # We can't use inspect.iscode() because we may be # using a different version of Python than the @@ -206,9 +206,9 @@ class Scanner26(scan.Scanner2): pattr = '' else: pattr = const - elif op in self.opc.hasname: + elif op in self.opc.NAME_OPS: pattr = names[oparg] - elif op in self.opc.hasjrel: + elif op in self.opc.JREL_OPS: pattr = repr(offset + 3 + oparg) if op == self.opc.JUMP_FORWARD: target = self.get_target(offset) @@ -218,13 +218,13 @@ class Scanner26(scan.Scanner2): if len(tokens) and tokens[-1].type == 'JUMP_BACK': tokens[-1].type = intern('CONTINUE') - elif op in self.opc.hasjabs: + elif op in self.opc.JABS_OPS: pattr = repr(oparg) - elif op in self.opc.haslocal: + elif op in self.opc.LOCAL_OPS: pattr = varnames[oparg] - elif op in self.opc.hascompare: + elif op in self.opc.COMPARE_OPS: pattr = self.opc.cmp_op[oparg] - elif op in self.opc.hasfree: + elif op in self.opc.FREE_OPS: pattr = free[oparg] if op in self.varargs_ops: # CE - Hack for >= 2.5 diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 2974f8d7..eef3ffd5 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -633,11 +633,11 @@ class Scanner3(Scanner): rel_offset = 0 if self.version >= 3.6: target = self.code[offset+1] - if op in self.opc.hasjrel: + if op in self.opc.JREL_OPS: rel_offset = offset + 2 else: target = self.code[offset+1] + self.code[offset+2] * 256 - if op in self.opc.hasjrel: + if op in self.opc.JREL_OPS: rel_offset = offset + 3 pass pass diff --git a/uncompyle6/scanners/scanner30.py b/uncompyle6/scanners/scanner30.py index 38d71810..4f607087 100644 --- a/uncompyle6/scanners/scanner30.py +++ b/uncompyle6/scanners/scanner30.py @@ -120,7 +120,7 @@ class Scanner30(Scanner3): if test == offset: loop_type = 'while 1' - elif self.code[test] in opc.hasjabs+opc.hasjrel: + elif self.code[test] in opc.JUMP_OPs: self.ignore_if.add(test) test_target = self.get_target(test) if test_target > (jump_back+3): diff --git a/uncompyle6/scanners/tok.py b/uncompyle6/scanners/tok.py index 88b3a3b3..6fdd9057 100644 --- a/uncompyle6/scanners/tok.py +++ b/uncompyle6/scanners/tok.py @@ -65,10 +65,10 @@ class Token: if self.pattr: pattr = self.pattr if self.opc: - if self.op in self.opc.hasjrel: + if self.op in self.opc.JREL_OPS: if not self.pattr.startswith('to '): pattr = "to " + self.pattr - elif self.op in self.opc.hasjabs: + elif self.op in self.opc.JABS_OPS: self.pattr= str(self.pattr) if not self.pattr.startswith('to '): pattr = "to " + str(self.pattr)