]> git.saurik.com Git - redis.git/commitdiff
crc64.c modified for incremental computation.
authorantirez <antirez@gmail.com>
Mon, 9 Apr 2012 10:20:47 +0000 (12:20 +0200)
committerantirez <antirez@gmail.com>
Tue, 10 Apr 2012 14:26:41 +0000 (16:26 +0200)
src/crc64.c
src/redis.h

index f2ea8d4ae4cd18b389b920963e6494d206e7bdbd..ecdba90e0452ee5bc0cf3da77ab4277fe0e409ba 100644 (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
index e86823db835502aba58891264fb6ca9178567ce5..d8595fe24689d4e7bb3edfceceaaf63a8d6a123a 100644 (file)
@@ -693,7 +693,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 */