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 Raise TODO + NOP opcode
This commit is contained in:
@@ -130,7 +130,7 @@ class Scanner25(scan.Scanner):
|
|||||||
oparg = self.get_argument(offset) + extended_arg
|
oparg = self.get_argument(offset) + extended_arg
|
||||||
extended_arg = 0
|
extended_arg = 0
|
||||||
if op == EXTENDED_ARG:
|
if op == EXTENDED_ARG:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
extended_arg = oparg * 65536L
|
extended_arg = oparg * 65536L
|
||||||
continue
|
continue
|
||||||
if op in hasconst:
|
if op in hasconst:
|
||||||
@@ -225,7 +225,7 @@ class Scanner25(scan.Scanner):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
if opcode == EXTENDED_ARG:
|
if opcode == EXTENDED_ARG:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
# del POP_TOP
|
# del POP_TOP
|
||||||
if opcode in (PJIF,PJIT,JA,JF):
|
if opcode in (PJIF,PJIT,JA,JF):
|
||||||
toDel = []
|
toDel = []
|
||||||
@@ -341,6 +341,8 @@ class Scanner25(scan.Scanner):
|
|||||||
self.restructJump(chckStore, i)
|
self.restructJump(chckStore, i)
|
||||||
self.toChange.append(chckStore)
|
self.toChange.append(chckStore)
|
||||||
return toDel
|
return toDel
|
||||||
|
if opcode == NOP:
|
||||||
|
return [i]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getOpcodeToExp(self):
|
def getOpcodeToExp(self):
|
||||||
@@ -486,11 +488,11 @@ class Scanner25(scan.Scanner):
|
|||||||
if not (self.code[pos] in hasjabs+hasjrel):
|
if not (self.code[pos] in hasjabs+hasjrel):
|
||||||
raise 'Can t change this argument. Opcode is not a jump'
|
raise 'Can t change this argument. Opcode is not a jump'
|
||||||
if newTarget > 0xFFFF:
|
if newTarget > 0xFFFF:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
offset = newTarget-self.get_target(pos)
|
offset = newTarget-self.get_target(pos)
|
||||||
target = self.get_argument(pos)+offset
|
target = self.get_argument(pos)+offset
|
||||||
if target < 0 or target > 0xFFFF:
|
if target < 0 or target > 0xFFFF:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
self.code[pos+2] = (target >> 8) & 0xFF
|
self.code[pos+2] = (target >> 8) & 0xFF
|
||||||
self.code[pos+1] = target & 0xFF
|
self.code[pos+1] = target & 0xFF
|
||||||
|
|
||||||
|
@@ -131,7 +131,7 @@ class Scanner26(scan.Scanner):
|
|||||||
oparg = self.get_argument(offset) + extended_arg
|
oparg = self.get_argument(offset) + extended_arg
|
||||||
extended_arg = 0
|
extended_arg = 0
|
||||||
if op == EXTENDED_ARG:
|
if op == EXTENDED_ARG:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
extended_arg = oparg * 65536L
|
extended_arg = oparg * 65536L
|
||||||
continue
|
continue
|
||||||
if op in hasconst:
|
if op in hasconst:
|
||||||
@@ -226,7 +226,7 @@ class Scanner26(scan.Scanner):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
if opcode == EXTENDED_ARG:
|
if opcode == EXTENDED_ARG:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
# modification of some jump structure
|
# modification of some jump structure
|
||||||
if opcode in (PJIF,PJIT,JA,JF,RETURN_VALUE):
|
if opcode in (PJIF,PJIT,JA,JF,RETURN_VALUE):
|
||||||
toDel = []
|
toDel = []
|
||||||
@@ -337,6 +337,8 @@ class Scanner26(scan.Scanner):
|
|||||||
self.restructJump(chckRot+1, i)
|
self.restructJump(chckRot+1, i)
|
||||||
self.toChange.append(chckRot+1)
|
self.toChange.append(chckRot+1)
|
||||||
return toDel
|
return toDel
|
||||||
|
if opcode == NOP:
|
||||||
|
return [i]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getOpcodeToExp(self):
|
def getOpcodeToExp(self):
|
||||||
@@ -482,11 +484,11 @@ class Scanner26(scan.Scanner):
|
|||||||
if not (self.code[pos] in hasjabs+hasjrel):
|
if not (self.code[pos] in hasjabs+hasjrel):
|
||||||
raise 'Can t change this argument. Opcode is not a jump'
|
raise 'Can t change this argument. Opcode is not a jump'
|
||||||
if newTarget > 0xFFFF:
|
if newTarget > 0xFFFF:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
offset = newTarget-self.get_target(pos)
|
offset = newTarget-self.get_target(pos)
|
||||||
target = self.get_argument(pos)+offset
|
target = self.get_argument(pos)+offset
|
||||||
if target < 0 or target > 0xFFFF:
|
if target < 0 or target > 0xFFFF:
|
||||||
raise 'TODO'
|
raise NotImplementedError
|
||||||
self.code[pos+2] = (target >> 8) & 0xFF
|
self.code[pos+2] = (target >> 8) & 0xFF
|
||||||
self.code[pos+1] = target & 0xFF
|
self.code[pos+1] = target & 0xFF
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user