From 0c9528fd4f66a175c737491959974a715abce6f0 Mon Sep 17 00:00:00 2001 From: Markus Birth Date: Tue, 16 Oct 2018 23:44:30 +0200 Subject: [PATCH] Further optimisations in ChkSum. --- grmn/chksum.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/grmn/chksum.py b/grmn/chksum.py index 7a01c19..1892705 100644 --- a/grmn/chksum.py +++ b/grmn/chksum.py @@ -4,16 +4,12 @@ class ChkSum: def __init__(self): self.chksum = 0 - self.chksum_without_last = 0 self.last_byte = 0xff def add(self, data): - for c in data[:-1]: + for c in data: self.chksum += c - self.chksum_without_last = self.chksum - self.chksum_without_last &= 0xff self.last_byte = data[-1] - self.chksum += self.last_byte self.chksum &= 0xff def add_from_file(self, filename: str, print_progress: bool = False, blocksize: int=16384): @@ -38,7 +34,8 @@ class ChkSum: return (self.chksum == 0) def get_expected(self): - expected = ( 0x100 - self.chksum_without_last ) & 0xff + chksum_without_last = ( 0x100 + self.chksum - self.last_byte ) & 0xff + expected = ( 0x100 - chksum_without_last ) & 0xff return expected def get_last_byte(self):