From a6fbe4c6366a914478c0d1a40f576040d21c236e Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 20 Jun 2016 20:19:17 -0400 Subject: [PATCH] previous 2.7 class decorator bug fixed in 3.x --- test/bytecode_3.4/10_classdec.pyc | Bin 0 -> 854 bytes uncompyle6/parsers/parse3.py | 14 +++++++++----- uncompyle6/scanners/scanner3.py | 4 +++- 3 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 test/bytecode_3.4/10_classdec.pyc diff --git a/test/bytecode_3.4/10_classdec.pyc b/test/bytecode_3.4/10_classdec.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f249d0cc925666de7ec8ce183c74effbd04bc34f GIT binary patch literal 854 zcmZuv!EV$r5FN+a?Y4DAB}6Y=xaP723BjeRD)mr=)V=h8$i)h_R|F-S5+@R^+SBqg z{F1M5<^wqK#@V)8Sj#h+%#7cR-}txM+xhkO&4(@_`bleR4EqG)-$Pk!LEnjTA_qGm zD`}ZTJEf(dGdm(X<_u^jXo)bipd3jFEpbwk-J*+ZVt^MHDiX^X#P36)1dxGoE9gcb zSI&%ppBH~wE+9UIx`CaE*$>J@kf!o2N2B`l!k6`B<+N}5*0@9K=7+CdYEu>7TW6-1 zS7Ep4yU$Il=l#McM&v$7Tt6TD)1#^}MdgpDYk3hnOLDdHEsEOtmRor!-Aeq1@sP0# zJGM$fCG7}*d2;S@`L3*U`LXHmi9m!H=LF(kLxJKPT=0PhQb3?fd4qbJGEFOn!TbnZ zjKkLX)hS={KhjPam@5F1NgJ*rLh4;L|F`>z*5#t?w0_E`R>bVDpr?1iN6j= 3.4: + if self.version >= 3.3: rule1 = ('listcomp ::= %sload_closure LOAD_LISTCOMP LOAD_CONST %s expr ' 'GET_ITER CALL_FUNCTION_1' % ('expr ' * args_pos, opname)) rule2 = ('setcomp ::= %sload_closure LOAD_SETCOMP LOAD_CONST %s expr ' diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index 9fa9c391..fde4b238 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -34,6 +34,7 @@ import xdis.opcodes.opcode_33 as op3 globals().update(op3.opmap) +# POP_JUMP_IF is used by verify POP_JUMP_TF = (POP_JUMP_IF_TRUE, POP_JUMP_IF_FALSE) import uncompyle6.scanner as scan @@ -56,7 +57,8 @@ class Scanner3(scan.Scanner): """ show_asm = self.show_asm if not show_asm else show_asm - if self.show_asm in ('both', 'before'): + # show_asm = 'both' + if show_asm in ('both', 'before'): bytecode = Bytecode(co, self.opc) for instr in bytecode.get_instructions(co): print(instr._disassemble())