-- 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:
Ken Hughes
2005-11-27 03:47:17 +00:00
parent bc293ba7e1
commit f08200baa9
2 changed files with 15 additions and 5 deletions

View File

@@ -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);
} }

View File

@@ -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;};
}; };