changeset 81:6893f2a2cc66

made compatible with python 1.4
author Scott Chacon <schacon@gmail.com>
date Fri, 08 May 2009 11:33:28 -0700
parents 71b07e16004f
children 64f451f2d50a
files dulwich/pack.py
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/dulwich/pack.py
+++ b/dulwich/pack.py
@@ -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 = {}