Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/treehash.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/treehash.c b/source/blender/blenkernel/intern/treehash.c
index eda78d6c72e..fb55e3d2137 100644
--- a/source/blender/blenkernel/intern/treehash.c
+++ b/source/blender/blenkernel/intern/treehash.c
@@ -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)