summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/buffer.c b/src/buffer.c
index e6f4804..40822d4 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -283,6 +283,7 @@ int readEepromFile(char eepromPath[], unsigned int eepromBuf[], long bufLimit) {
unsigned int checksum(unsigned int buffer[], long bufLimit) {
long idx;
+ long element;
unsigned int chksum = 0;
/*
@@ -290,8 +291,10 @@ unsigned int checksum(unsigned int buffer[], long bufLimit) {
*/
for (idx = 0; idx < bufLimit; idx++) {
if (buffer[idx] == 0xfff)
- buffer[idx] = 0xff;
- chksum = ((chksum>>1) + ((chksum & 1) ?0x8000:0) + buffer[idx]) & 0xffff;
+ element = 0xff;
+ else
+ element = buffer[idx];
+ chksum = ((chksum>>1) + ((chksum & 1) ?0x8000:0) + element) & 0xffff;
}
return(chksum);
}