From 8999053326a8e7a3e6e8d2ca70810fec19804096 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 15 Sep 2000 16:37:42 +0000 Subject: Fix for bug #113693: with the changes to the IMPORT_FROM opcodes, this crashed on an assert. --- Tools/freeze/modulefinder.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py index a75e2f3..e84a541 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: -- cgit v0.12