Hash: typecast error fix

This commit is contained in:
Jan Moskyto Matejka 2016-02-19 15:51:16 +01:00
parent 9a74622ca1
commit a815d62d59
2 changed files with 3 additions and 2 deletions

View file

@ -184,7 +184,8 @@ mem_hash(void *p, int s)
const char *pp = p; const char *pp = p;
const u64 multiplier = 0xb38bc09a61202731ULL; const u64 multiplier = 0xb38bc09a61202731ULL;
u64 value = 0x001047d54778bcafULL; u64 value = 0x001047d54778bcafULL;
for (int i=0;i<s;i++) int i;
for (i=0;i<s;i++)
value = value*multiplier + pp[i]; value = value*multiplier + pp[i];
return ((value >> 32) ^ (value & 0xffffffff)); return ((value >> 32) ^ (value & 0xffffffff));

View file

@ -946,7 +946,7 @@ rta_alloc_hash(void)
static inline uint static inline uint
rta_hash(rta *a) rta_hash(rta *a)
{ {
return mem_hash(a + offsetof(rta, src), sizeof(rta) - offsetof(rta, src)) ^ return mem_hash(((void *)a) + offsetof(rta, src), sizeof(rta) - offsetof(rta, src)) ^
mpnh_hash(a->nexthops) ^ ea_hash(a->eattrs); mpnh_hash(a->nexthops) ^ ea_hash(a->eattrs);
} }