From 5a1126b68cbcd6b49534e9daa0eebe3a354e3f73 Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 2 May 2014 22:02:02 +1000 Subject: Use unsigned int for calculating hash and secondary probe as overflow of signed int is undefined in C++. --- src/PositionCache.cxx | 4 ++-- src/PositionCache.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index f197a6559..820fd4895 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -594,7 +594,7 @@ bool PositionCacheEntry::Retrieve(unsigned int styleNumber_, const char *s_, } } -int PositionCacheEntry::Hash(unsigned int styleNumber_, const char *s, unsigned int len_) { +unsigned int PositionCacheEntry::Hash(unsigned int styleNumber_, const char *s, unsigned int len_) { unsigned int ret = s[0] << 7; for (unsigned int i=0; i(hashValue % pces.size()); if (pces[probe].Retrieve(styleNumber, s, len, positions)) { return; diff --git a/src/PositionCache.h b/src/PositionCache.h index 871bb6e46..d8ea0119d 100644 --- a/src/PositionCache.h +++ b/src/PositionCache.h @@ -111,7 +111,7 @@ public: void Set(unsigned int styleNumber_, const char *s_, unsigned int len_, XYPOSITION *positions_, unsigned int clock); void Clear(); bool Retrieve(unsigned int styleNumber_, const char *s_, unsigned int len_, XYPOSITION *positions_) const; - static int Hash(unsigned int styleNumber_, const char *s, unsigned int len); + static unsigned int Hash(unsigned int styleNumber_, const char *s, unsigned int len); bool NewerThan(const PositionCacheEntry &other) const; void ResetClock(); }; -- cgit v1.2.3