# HG changeset patch # User Scott Chacon # Date 1241807608 25200 # Node ID 6893f2a2cc66819c10f4084e2a8f223f6ae93282 # Parent 71b07e16004f9716a598d71c48afc3a94a2f7a46 made compatible with python 1.4 diff -r 71b07e16004f -r 6893f2a2cc66 dulwich/pack.py --- a/dulwich/pack.py Tue May 05 09:43:24 2009 -0700 +++ b/dulwich/pack.py Fri May 08 11:33:28 2009 -0700 @@ -451,9 +451,12 @@ """Calculate the checksum for this pack.""" map, map_offset = simple_mmap(self._file, 0, self._size - 20) try: - return make_sha(map[map_offset:self._size-20]).digest() - finally: + r = make_sha(map[map_offset:self._size-20]).digest() map.close() + return r + except: + map.close() + raise def resolve_object(self, offset, type, obj, get_ref, get_offset=None): """Resolve an object, possibly resolving deltas when necessary. @@ -500,8 +503,10 @@ offset += total_size if progress: progress(i, num) - finally: map.close() + except: + map.close() + raise def iterentries(self, ext_resolve_ref=None, progress=None): found = {}