You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Fix Python 2.7 try: try: else: bug
This commit is contained in:
BIN
test/bytecode_2.7/04_try_tryelse.pyc
Normal file
BIN
test/bytecode_2.7/04_try_tryelse.pyc
Normal file
Binary file not shown.
21
test/simple_source/bug27+/04_try_tryelse.py
Normal file
21
test/simple_source/bug27+/04_try_tryelse.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# From 2.7 test_normalize.py
|
||||
# Bug has to to with finding the end of the tryelse block. I think thrown
|
||||
# off by the "continue". In instructions the COME_FROM for END_FINALLY
|
||||
# was at the wrong offset because some sort of "rtarget" was adjust.
|
||||
|
||||
# When control flow is in place this logic in the code will be simplified
|
||||
def test_main(self, c1):
|
||||
for line in self:
|
||||
try:
|
||||
c1 = 6
|
||||
except:
|
||||
if c1:
|
||||
try:
|
||||
c1 = 5
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
c1 = 1
|
||||
continue
|
||||
|
||||
pass
|
@@ -816,6 +816,7 @@ class Scanner2(Scanner):
|
||||
rtarget = pre_rtarget
|
||||
else:
|
||||
rtarget = pre_rtarget
|
||||
pre_rtarget = pre[rtarget]
|
||||
|
||||
# Does the "jump if" jump beyond a jump op?
|
||||
# That is, we have something like:
|
||||
|
Reference in New Issue
Block a user