-- Change to make blender with game engine disabled build without errors
on 64-bit machines. This code only seems to be used by the game engine anyway; maybe it's only linux which always compiles it regardless of whether game engine is enabled?
This commit is contained in:
@@ -36,9 +36,19 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#endif
|
#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 << 16);
|
||||||
key ^= (key >> 5);
|
key ^= (key >> 5);
|
||||||
@@ -47,5 +57,5 @@ unsigned int GEN_Hash(unsigned int inDWord)
|
|||||||
key += ~(key << 9);
|
key += ~(key << 9);
|
||||||
key ^= (key >> 17);
|
key ^= (key >> 17);
|
||||||
|
|
||||||
return key;
|
return (unsigned int)(key & 0xffffffff);
|
||||||
}
|
}
|
||||||
|
@@ -33,14 +33,14 @@
|
|||||||
#ifndef __GEN_HASHEDPTR
|
#ifndef __GEN_HASHEDPTR
|
||||||
#define __GEN_HASHEDPTR
|
#define __GEN_HASHEDPTR
|
||||||
|
|
||||||
unsigned int GEN_Hash(unsigned int inDWord);
|
unsigned int GEN_Hash(void * inDWord);
|
||||||
|
|
||||||
class GEN_HashedPtr
|
class GEN_HashedPtr
|
||||||
{
|
{
|
||||||
void* m_valptr;
|
void* m_valptr;
|
||||||
public:
|
public:
|
||||||
GEN_HashedPtr(void* val) : m_valptr(val) {};
|
GEN_HashedPtr(void* val) : m_valptr(val) {};
|
||||||
unsigned int hash() const { return GEN_Hash((unsigned int) m_valptr);};
|
unsigned int hash() const { return GEN_Hash(m_valptr);};
|
||||||
inline friend bool operator ==(const GEN_HashedPtr & rhs, const GEN_HashedPtr & lhs) { return rhs.m_valptr == lhs.m_valptr;};
|
inline friend bool operator ==(const GEN_HashedPtr & rhs, const GEN_HashedPtr & lhs) { return rhs.m_valptr == lhs.m_valptr;};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user