From aa2fc0f5a52ba45c1c7f827abea6d398f65eba14 Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 19 Dec 2015 20:52:18 -0500 Subject: [PATCH] 3.4: correct picking up parameter names on oa function call --- test/bytecode_2.7/def1.pyc | Bin 0 -> 232 bytes test/bytecode_2.7/left.pyc | Bin 0 -> 173 bytes uncompyle6/deparser.py | 4 +++- uncompyle6/walker.py | 4 +++- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 test/bytecode_2.7/def1.pyc create mode 100644 test/bytecode_2.7/left.pyc diff --git a/test/bytecode_2.7/def1.pyc b/test/bytecode_2.7/def1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1fc71e7b5e5dc66a1e1e5cc38a033612602d5f3 GIT binary patch literal 232 zcmZSn%*!<`zBDYE0SXv_v;z}hA1F|ks(-v2`G{bl80eukUAEKx?l~E zsGkOqU;r~qK>S1qA0${T2_iCc3vyC*i}Op1l2i3lQqw@#P_Lk}1Y~%HAxKX#h{?d{ f2R0=LB!Vym%pzbC2T+GiZhlH>PO2T)Jdkk!CvYTF literal 0 HcmV?d00001 diff --git a/test/bytecode_2.7/left.pyc b/test/bytecode_2.7/left.pyc new file mode 100644 index 0000000000000000000000000000000000000000..95cab269b0f2594a9586bb7aa753e708bddff2e7 GIT binary patch literal 173 zcmZSn%**xPCnGGG0ScIbv;z zNS1(@NnkP=Os0UzL=B)Y1A+h>Tb!9&kdvxgoL^d$oT^_?l$xBHl9~r(=A@>T=oM6! XZ~*n# i else None params.append( build_param(ast, name, default) ) params.reverse() # back to correct order diff --git a/uncompyle6/walker.py b/uncompyle6/walker.py index 00cf03dc..f814c71b 100644 --- a/uncompyle6/walker.py +++ b/uncompyle6/walker.py @@ -1292,6 +1292,7 @@ class Walker(GenericASTTraversal, object): else: return name # node[-1] == MAKE_xxx_n + defparams = node[:node[-1].attr] code = node[code_index].attr @@ -1323,7 +1324,8 @@ class Walker(GenericASTTraversal, object): # params = map(lambda name, default: build_param(ast, name, default), # paramnames, defparams) params = [] - for name, default in map(lambda a, b: (a, b), paramnames, defparams): + for i, name in enumerate(paramnames): + default = defparams[i] if len(defparams) > i else None params.append( build_param(ast, name, default) ) params.reverse() # back to correct order