Commit 9013321c authored by mattip's avatar mattip Committed by Jason R. Coombs

catch some resource leaks

parent d9998e62
...@@ -1459,7 +1459,8 @@ class NullProvider: ...@@ -1459,7 +1459,8 @@ class NullProvider:
script_filename = self._fn(self.egg_info, script) script_filename = self._fn(self.egg_info, script)
namespace['__file__'] = script_filename namespace['__file__'] = script_filename
if os.path.exists(script_filename): if os.path.exists(script_filename):
source = open(script_filename).read() with open(script_filename) as fid:
source = fid.read()
code = compile(source, script_filename, 'exec') code = compile(source, script_filename, 'exec')
exec(code, namespace, namespace) exec(code, namespace, namespace)
else: else:
......
...@@ -25,7 +25,8 @@ def run(): ...@@ -25,7 +25,8 @@ def run():
sys.argv[:] = sys.argv[1:] sys.argv[:] = sys.argv[1:]
open_ = getattr(tokenize, 'open', open) open_ = getattr(tokenize, 'open', open)
script = open_(script_name).read() with open_(script_name) as fid:
script = fid.read()
norm_script = script.replace('\\r\\n', '\\n') norm_script = script.replace('\\r\\n', '\\n')
code = compile(norm_script, script_name, 'exec') code = compile(norm_script, script_name, 'exec')
exec(code, namespace) exec(code, namespace)
......
...@@ -643,8 +643,10 @@ class RegistryInfo: ...@@ -643,8 +643,10 @@ class RegistryInfo:
""" """
key_read = winreg.KEY_READ key_read = winreg.KEY_READ
openkey = winreg.OpenKey openkey = winreg.OpenKey
closekey = winreg.CloseKey
ms = self.microsoft ms = self.microsoft
for hkey in self.HKEYS: for hkey in self.HKEYS:
bkey = None
try: try:
bkey = openkey(hkey, ms(key), 0, key_read) bkey = openkey(hkey, ms(key), 0, key_read)
except (OSError, IOError): except (OSError, IOError):
...@@ -659,6 +661,9 @@ class RegistryInfo: ...@@ -659,6 +661,9 @@ class RegistryInfo:
return winreg.QueryValueEx(bkey, name)[0] return winreg.QueryValueEx(bkey, name)[0]
except (OSError, IOError): except (OSError, IOError):
pass pass
finally:
if bkey:
closekey(bkey)
class SystemInfo: class SystemInfo:
...@@ -726,21 +731,22 @@ class SystemInfo: ...@@ -726,21 +731,22 @@ class SystemInfo:
bkey = winreg.OpenKey(hkey, ms(key), 0, winreg.KEY_READ) bkey = winreg.OpenKey(hkey, ms(key), 0, winreg.KEY_READ)
except (OSError, IOError): except (OSError, IOError):
continue continue
subkeys, values, _ = winreg.QueryInfoKey(bkey) with bkey:
for i in range(values): subkeys, values, _ = winreg.QueryInfoKey(bkey)
try: for i in range(values):
ver = float(winreg.EnumValue(bkey, i)[0]) try:
if ver not in vs_vers: ver = float(winreg.EnumValue(bkey, i)[0])
vs_vers.append(ver) if ver not in vs_vers:
except ValueError: vs_vers.append(ver)
pass except ValueError:
for i in range(subkeys): pass
try: for i in range(subkeys):
ver = float(winreg.EnumKey(bkey, i)) try:
if ver not in vs_vers: ver = float(winreg.EnumKey(bkey, i))
vs_vers.append(ver) if ver not in vs_vers:
except ValueError: vs_vers.append(ver)
pass except ValueError:
pass
return sorted(vs_vers) return sorted(vs_vers)
def find_programdata_vs_vers(self): def find_programdata_vs_vers(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment