diff --git a/src_main/core/pibase.h b/src_main/core/pibase.h index 3590fef5..87c23c19 100644 --- a/src_main/core/pibase.h +++ b/src_main/core/pibase.h @@ -504,15 +504,15 @@ template inline uint piHash(const T & v) { return 0; } -template<> inline uint piHash(const char & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const uchar & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const short & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const ushort & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const int & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const uint & v) {return piHashData((const uchar *)&v, sizeof(v));} +template<> inline uint piHash(const char & v) {return (uint)v;} +template<> inline uint piHash(const uchar & v) {return (uint)v;} +template<> inline uint piHash(const short & v) {return (uint)v;} +template<> inline uint piHash(const ushort & v) {return (uint)v;} +template<> inline uint piHash(const int & v) {return (uint)v;} +template<> inline uint piHash(const uint & v) {return (uint)v;} template<> inline uint piHash(const llong & v) {return piHashData((const uchar *)&v, sizeof(v));} template<> inline uint piHash(const ullong & v) {return piHashData((const uchar *)&v, sizeof(v));} -template<> inline uint piHash(const float & v) {return piHashData((const uchar *)&v, sizeof(v));} +template<> inline uint piHash(const float & v) {return (uint)v;} template<> inline uint piHash(const double & v) {return piHashData((const uchar *)&v, sizeof(v));} template<> inline uint piHash(const ldouble & v) {return piHashData((const uchar *)&v, sizeof(v));}