From a8fe985ed3c9478da4219878435d7fcdd22ec7f5 Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 29 Jan 2018 21:36:19 -0500 Subject: [PATCH] Add a scanner next_offset() routine Remove extended_arg_val() as that is now in xdis --- uncompyle6/scanner.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/uncompyle6/scanner.py b/uncompyle6/scanner.py index 11e4f591..392fd05e 100755 --- a/uncompyle6/scanner.py +++ b/uncompyle6/scanner.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 by Rocky Bernstein +# Copyright (c) 2016, 2018 by Rocky Bernstein # Copyright (c) 2005 by Dan Pascu # Copyright (c) 2000-2002 by hartmut Goebel # Copyright (c) 1999 John Aycock @@ -16,6 +16,7 @@ import sys from uncompyle6 import PYTHON3, IS_PYPY from uncompyle6.scanners.tok import Token +import xdis from xdis.bytecode import op_size from xdis.magics import py_str2float, canonic_python_version from xdis.util import code2num @@ -105,14 +106,13 @@ class Scanner(object): target += pos + 3 return target - # FIXME: the below can be removed after xdis version 3.6.1 has been released - def extended_arg_val(self, val): - return val << self.opc.EXTENDED_ARG_SHIFT - def get_argument(self, pos): arg = self.code[pos+1] + self.code[pos+2] * 256 return arg + def next_offset(self, op, offset): + return xdis.next_offset(op, self.opc, offset) + def print_bytecode(self): for i in self.op_range(0, len(self.code)): op = self.code[i]