Outliner: avoid using bitshift when hashing (which could use negative numbers)

This commit is contained in:
Campbell Barton
2014-04-26 03:06:36 +10:00
parent a34a65314c
commit a66ae2b4ae

View File

@@ -76,11 +76,19 @@ static void tse_group_free(TseGroup *tse_group)
static unsigned int tse_hash(const void *ptr)
{
const TreeStoreElem *tse = ptr;
unsigned int hash;
union {
short h_pair[2];
unsigned int u_int;
} hash;
BLI_assert(tse->type || !tse->nr);
hash = BLI_ghashutil_inthash((tse->nr << 16) + tse->type);
hash ^= BLI_ghashutil_ptrhash(tse->id);
return hash;
hash.h_pair[0] = tse->type;
hash.h_pair[1] = tse->nr;
hash.u_int ^= BLI_ghashutil_ptrhash(tse->id);
return hash.u_int;
}
static int tse_cmp(const void *a, const void *b)