void rollsumUpdate(trollsum *sum,const unsigned char *buf,unsigned int len) { unsigned long s1 = sum->s1; unsigned long s2 = sum->s2; sum->count+=len; /* increment sum count */ while (len >= 16) { DO16(buf); OF16(ROLLSUM_CHAR_OFFSET); buf += 16; len -= 16; } while (len != 0) { s1 += (*buf++ + ROLLSUM_CHAR_OFFSET); s2 += s1; len--; } sum->s1=s1; sum->s2=s2; }
void rs_rollsum_update(rs_rollsum_t *sum,const char *buf,int len) { /* ANSI C says no overflow for unsigned */ unsigned long s1 = sum->s1; unsigned long s2 = sum->s2; sum->count+=len; /* increment sum count */ while (len >= 16) { DO16(buf); OF16(RS_CHAR_OFFSET); buf += 16; len -= 16; } while (len != 0) { s1 += (*buf++ + RS_CHAR_OFFSET); s2 += s1; len--; } sum->s1=s1; sum->s2=s2; }
void RollsumUpdate(Rollsum *sum,const unsigned char *buf,unsigned int len) { /* ANSI C says no overflow for unsigned. zlib's adler 32 goes to extra effort to avoid overflow*/ unsigned long s1 = sum->s1; unsigned long s2 = sum->s2; sum->count+=len; /* increment sum count */ while (len >= 16) { DO16(buf); OF16(ROLLSUM_CHAR_OFFSET); buf += 16; len -= 16; } while (len != 0) { s1 += (*buf++ + ROLLSUM_CHAR_OFFSET); s2 += s1; len--; } sum->s1=s1; sum->s2=s2; }