From d6f7ef4e178e04d9a612d3a6c0b77a008732357f Mon Sep 17 00:00:00 2001 From: rocky Date: Fri, 21 Oct 2016 07:40:35 -0400 Subject: [PATCH] DRY op_size Move from scanner{2,3}.py to scanner.py --- uncompyle6/scanner.py | 10 ++++++++++ uncompyle6/scanners/scanner2.py | 11 ----------- uncompyle6/scanners/scanner3.py | 10 ---------- 3 files changed, 10 insertions(+), 21 deletions(-) diff --git a/uncompyle6/scanner.py b/uncompyle6/scanner.py index 0e70eac5..71316d41 100755 --- a/uncompyle6/scanner.py +++ b/uncompyle6/scanner.py @@ -219,6 +219,16 @@ class Scanner(object): yield start start += self.op_size(self.code[start]) + def op_size(self, op): + """ + Return size of operator with its arguments + for given opcode . + """ + if op < self.opc.HAVE_ARGUMENT: + return 1 + else: + return 3 + def remove_mid_line_ifs(self, ifs): """ Go through passed offsets, filtering ifs diff --git a/uncompyle6/scanners/scanner2.py b/uncompyle6/scanners/scanner2.py index f34a510f..839887a3 100644 --- a/uncompyle6/scanners/scanner2.py +++ b/uncompyle6/scanners/scanner2.py @@ -22,7 +22,6 @@ Finally we save token information. from __future__ import print_function -import inspect from collections import namedtuple from array import array @@ -296,16 +295,6 @@ class Scanner2(scan.Scanner): print() return tokens, customize - def op_size(self, op): - """ - Return size of operator with its arguments - for given opcode . - """ - if op < self.opc.HAVE_ARGUMENT and op not in self.opc.hasArgumentExtended: - return 1 - else: - return 3 - def setup_code(self, co): """ Creates Python-independent bytecode structure (byte array) in diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 0a6a1385..c8d0a310 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -388,16 +388,6 @@ class Scanner3(Scanner): for _ in range(self.op_size(op)): self.prev_op.append(offset) - def op_size(self, op): - """ - Return size of operator with its arguments - for given opcode . - """ - if op < self.opc.HAVE_ARGUMENT: - return 1 - else: - return 3 - def find_jump_targets(self): """ Detect all offsets in a byte code which are jump targets.