From: Guido van Rossum Date: Fri, 15 Sep 2000 16:37:42 +0000 (+0000) Subject: Fix for bug #113693: with the changes to the IMPORT_FROM opcodes, this X-Git-Tag: v2.0b2~288 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8999053326a8e7a3e6e8d2ca70810fec19804096;p=thirdparty%2FPython%2Fcpython.git Fix for bug #113693: with the changes to the IMPORT_FROM opcodes, this crashed on an assert. --- diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py index a75e2f3f750c..e84a54128f6f 100644 --- a/Tools/freeze/modulefinder.py +++ b/Tools/freeze/modulefinder.py @@ -21,6 +21,10 @@ if sys.platform=="win32": IMPORT_NAME = dis.opname.index('IMPORT_NAME') IMPORT_FROM = dis.opname.index('IMPORT_FROM') +STORE_NAME = dis.opname.index('STORE_NAME') +STORE_FAST = dis.opname.index('STORE_FAST') +STORE_GLOBAL = dis.opname.index('STORE_GLOBAL') +STORE_OPS = [STORE_NAME, STORE_FAST, STORE_GLOBAL] # Modulefinder does a good job at simulating Python's, but it can not # handle __path__ modifications packages make at runtime. Therefore there @@ -296,6 +300,9 @@ class ModuleFinder: if not self.badmodules.has_key(fullname): self.badmodules[fullname] = {} self.badmodules[fullname][m.__name__] = None + elif op in STORE_OPS: + # Skip; each IMPORT_FROM is followed by a STORE_* opcode + pass else: lastname = None for c in co.co_consts: