You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 16:59:52 +08:00
Fix another cross-version bug: eliminate version-specific library 'dis'
and use corresponding version-indepent routine instead.
This commit is contained in:
@@ -316,14 +316,14 @@ class Scanner3(scan.Scanner):
|
|||||||
# Determine structures and fix jumps for 2.3+
|
# Determine structures and fix jumps for 2.3+
|
||||||
self.detect_structure(offset)
|
self.detect_structure(offset)
|
||||||
|
|
||||||
if op >= dis.HAVE_ARGUMENT:
|
if op >= op3.HAVE_ARGUMENT:
|
||||||
label = self.fixed_jumps.get(offset)
|
label = self.fixed_jumps.get(offset)
|
||||||
oparg = code[offset+1] + code[offset+2] * 256
|
oparg = code[offset+1] + code[offset+2] * 256
|
||||||
|
|
||||||
if label is None:
|
if label is None:
|
||||||
if op in dis.hasjrel and op != FOR_ITER:
|
if op in op3.hasjrel and op != FOR_ITER:
|
||||||
label = offset + 3 + oparg
|
label = offset + 3 + oparg
|
||||||
elif op in dis.hasjabs:
|
elif op in op3.hasjabs:
|
||||||
if op in (JUMP_IF_FALSE_OR_POP, JUMP_IF_TRUE_OR_POP):
|
if op in (JUMP_IF_FALSE_OR_POP, JUMP_IF_TRUE_OR_POP):
|
||||||
if oparg > offset:
|
if oparg > offset:
|
||||||
label = oparg
|
label = oparg
|
||||||
@@ -439,7 +439,7 @@ class Scanner3(scan.Scanner):
|
|||||||
"""
|
"""
|
||||||
op = self.code[offset]
|
op = self.code[offset]
|
||||||
target = self.code[offset+1] + self.code[offset+2] * 256
|
target = self.code[offset+1] + self.code[offset+2] * 256
|
||||||
if op in dis.hasjrel:
|
if op in op3.hasjrel:
|
||||||
target += offset + 3
|
target += offset + 3
|
||||||
return target
|
return target
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user