-- Change to make blender with game engine disabled build without errors
[blender-staging.git] / source / kernel / gen_system / GEN_HashedPtr.cpp
index f852530fa5352cee2b4972b578dacc3456a12ac8..4da40e6696d55a50aef95d12fcc5544267cab1fa 100644 (file)
 #include <config.h>
 #endif
 
-unsigned int GEN_Hash(unsigned int inDWord)
+//
+// Build hash index from pointer.  Even though the final result
+// is a 32-bit integer, use all the bits of the pointer as long
+// as possible.
+//
+
+unsigned int GEN_Hash(void * inDWord)
 {
-       unsigned int key = inDWord;
+#if defined(_WIN64)
+       unsigned __int64 key = (unsigned __int64)inDWord;
+#else
+       unsigned long key = (unsigned long)inDWord;
+#endif
 
        key += ~(key << 16);
        key ^=  (key >>  5);
@@ -47,5 +57,5 @@ unsigned int GEN_Hash(unsigned int inDWord)
        key += ~(key <<  9);
        key ^=  (key >> 17);
 
-       return key;
+       return (unsigned int)(key & 0xffffffff);
 }