From 46acb7474520007ed055c6351e448e38068761c9 Mon Sep 17 00:00:00 2001 From: rocky Date: Tue, 14 May 2019 06:28:29 -0400 Subject: [PATCH] Only add forward-jumping COME_FROM in 3.6+ Is this a repeat commit? --- uncompyle6/parsers/parse36.py | 4 ---- uncompyle6/scanners/scanner3.py | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/uncompyle6/parsers/parse36.py b/uncompyle6/parsers/parse36.py index 96a6a376..f87da84b 100644 --- a/uncompyle6/parsers/parse36.py +++ b/uncompyle6/parsers/parse36.py @@ -33,10 +33,6 @@ class Python36Parser(Python35Parser): """ sstmt ::= sstmt RETURN_LAST - cf_for_iter ::= _come_froms FOR_ITER - list_for ::= expr cf_for_iter store list_iter jb_or_c - genexpr_func ::= LOAD_FAST cf_for_iter store comp_iter JUMP_BACK - # 3.6 redoes how return_closure works. FIXME: Isolate to LOAD_CLOSURE return_closure ::= LOAD_CLOSURE DUP_TOP STORE_NAME RETURN_VALUE RETURN_LAST diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index a9d8d8af..9eeabc7c 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -816,7 +816,8 @@ class Scanner3(Scanner): # Fix up grammar so we don't need to do this. # See cf_for_iter use in parser36.py self.fixed_jumps[offset] = match[-1] - else: + elif target > offset: + # Right now we only add COME_FROMs in forward (not loop) jumps self.fixed_jumps[offset] = target return # op == POP_JUMP_IF_TRUE