diff options
Diffstat (limited to 'git_config.py')
-rw-r--r-- | git_config.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/git_config.py b/git_config.py index 7aad80d2..7e642a4c 100644 --- a/git_config.py +++ b/git_config.py | |||
@@ -219,7 +219,11 @@ class GitConfig(object): | |||
219 | return None | 219 | return None |
220 | try: | 220 | try: |
221 | Trace(': unpickle %s', self.file) | 221 | Trace(': unpickle %s', self.file) |
222 | return cPickle.load(open(self._pickle, 'r')) | 222 | fd = open(self._pickle, 'rb') |
223 | try: | ||
224 | return cPickle.load(fd) | ||
225 | finally: | ||
226 | fd.close() | ||
223 | except IOError: | 227 | except IOError: |
224 | os.remove(self._pickle) | 228 | os.remove(self._pickle) |
225 | return None | 229 | return None |
@@ -229,9 +233,11 @@ class GitConfig(object): | |||
229 | 233 | ||
230 | def _SavePickle(self, cache): | 234 | def _SavePickle(self, cache): |
231 | try: | 235 | try: |
232 | cPickle.dump(cache, | 236 | fd = open(self._pickle, 'wb') |
233 | open(self._pickle, 'w'), | 237 | try: |
234 | cPickle.HIGHEST_PROTOCOL) | 238 | cPickle.dump(cache, fd, cPickle.HIGHEST_PROTOCOL) |
239 | finally: | ||
240 | fd.close() | ||
235 | except IOError: | 241 | except IOError: |
236 | os.remove(self._pickle) | 242 | os.remove(self._pickle) |
237 | except cPickle.PickleError: | 243 | except cPickle.PickleError: |