diff paraspace/dexfile.py @ 67:9504ad530dbf

Add DEXFile.make_checksum()
author Thinker K.F. Li <thinker@codemud.net>
date Wed, 29 Jun 2011 19:27:09 +0800
parents fa44a8acba6a
children 9422a25e798d
line wrap: on
line diff
--- a/paraspace/dexfile.py	Tue Jun 28 14:42:46 2011 +0800
+++ b/paraspace/dexfile.py	Wed Jun 29 19:27:09 2011 +0800
@@ -1635,6 +1635,16 @@
                      for map_item in self.maps.items.items]
         children = map_items
         return children
+
+    def make_checksum(self):
+        from paraspace.tools import adler32
+        raw = self.to_str()
+        sz = self.header.fileSize
+        nosum = _DEX_header.magic.sizeof(self.header.magic) + \
+            _DEX_header.checksum.sizeof(self.header.checksum)
+        checksum = adler32(0, raw, nosum, sz - nosum)
+        self.header.checksum = checksum
+        pass
     pass