]> granicus.if.org Git - python/commitdiff
close module file after loading
authorGuido van Rossum <guido@python.org>
Tue, 10 Sep 1996 17:37:44 +0000 (17:37 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 10 Sep 1996 17:37:44 +0000 (17:37 +0000)
Lib/ihooks.py

index bdc48e1dfd6e3f0e6f3a0db1a6e03806873fc82b..3a7e4bf020d45bc1b7f48c3ea45d941a4ba246c7 100644 (file)
@@ -133,16 +133,19 @@ class BasicModuleLoader(_Verbose):
 
     def load_module(self, name, stuff):
        file, filename, (suff, mode, type) = stuff
-       if type == BUILTIN_MODULE:
-           return imp.init_builtin(name)
-       if type == FROZEN_MODULE:
-           return imp.init_frozen(name)
-       if type == C_EXTENSION:
-           return imp.load_dynamic(name, filename, file)
-       if type == PY_SOURCE:
-           return imp.load_source(name, filename, file)
-       if type == PY_COMPILED:
-           return imp.load_compiled(name, filename, file)
+       try:
+           if type == BUILTIN_MODULE:
+               return imp.init_builtin(name)
+           if type == FROZEN_MODULE:
+               return imp.init_frozen(name)
+           if type == C_EXTENSION:
+               return imp.load_dynamic(name, filename, file)
+           if type == PY_SOURCE:
+               return imp.load_source(name, filename, file)
+           if type == PY_COMPILED:
+               return imp.load_compiled(name, filename, file)
+       finally:
+           if file: file.close()
        raise ImportError, "Unrecognized module type (%s) for %s" % \
                           (`type`, name)