Andrei Pelinescu-Onciul
18 vuotta sitten
vanhempi
commit
e16f999c03
1 muutettua tiedostoa jossa
10 lisäystä ja
2 poistoa
-
10
2
hashes.h
|
@@ -44,8 +44,16 @@
|
|
|
(v)=(*(p)<<24)+((p)[1]<<16)+((p)[2]<<8)+(p)[3]; \
|
|
|
(h)+=(v)^((v)>>3); \
|
|
|
} \
|
|
|
- (v)=0; \
|
|
|
- for (;(p)<(end); (p)++){ (v)<<=8; (v)+=*(p);} \
|
|
|
+ switch((end)-(p)){\
|
|
|
+ case 3: \
|
|
|
+ (v)=(*(p)<<16)+((p)[1]<<8)+(p)[2]; break; \
|
|
|
+ case 2: \
|
|
|
+ (v)=(*(p)<<8)+p[1]; break; \
|
|
|
+ case 1: \
|
|
|
+ (v)=*p; break; \
|
|
|
+ default: \
|
|
|
+ (v)=0; break; \
|
|
|
+ } \
|
|
|
(h)+=(v)^((v)>>3); \
|
|
|
}while(0)
|
|
|
|