crc64.c modified for incremental computation.

This commit is contained in:
antirez 2012-04-09 12:20:47 +02:00
parent af55e15d1b
commit cbde349a1c
2 changed files with 3 additions and 4 deletions

View File

@ -170,8 +170,7 @@ static const uint64_t crc64_tab[256] = {
UINT64_C(0x536fa08fdfd90e51), UINT64_C(0x29b7d047efec8728),
};
uint64_t crc64(const unsigned char *s, uint64_t l) {
uint64_t crc = 0;
uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l) {
uint64_t j;
for (j = 0; j < l; j++) {
@ -186,7 +185,7 @@ uint64_t crc64(const unsigned char *s, uint64_t l) {
#include <stdio.h>
int main(void) {
printf("e9c6d914c4b8d9ca == %016llx\n",
(unsigned long long) crc64((unsigned char*)"123456789",9));
(unsigned long long) crc64(0,(unsigned char*)"123456789",9));
return 0;
}
#endif

View File

@ -827,7 +827,7 @@ extern dictType hashDictType;
long long ustime(void);
long long mstime(void);
void getRandomHexChars(char *p, unsigned int len);
uint64_t crc64(const unsigned char *s, uint64_t l);
uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l);
void exitFromChild(int retcode);
/* networking.c -- Networking and Client related operations */