summaryrefslogtreecommitdiff
path: root/sdext
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-02-11 12:38:16 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-02-11 12:38:16 +0000
commit39ec189d250aec2b1dfdc8cd6be3dac222a613e1 (patch)
treef7c3fea4f829f429ad484ed8f78813ce82cdeaba /sdext
parent36fe59b73bf5d33663eef3027de7618c90d4de1a (diff)
(std|boost)::hash on a const char* hashes the pointer not the contents
Diffstat (limited to 'sdext')
-rw-r--r--sdext/source/minimizer/pppoptimizertoken.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sdext/source/minimizer/pppoptimizertoken.cxx b/sdext/source/minimizer/pppoptimizertoken.cxx
index c8eddee45f84..669132de7cba 100644
--- a/sdext/source/minimizer/pppoptimizertoken.cxx
+++ b/sdext/source/minimizer/pppoptimizertoken.cxx
@@ -35,6 +35,13 @@
#include <boost/unordered_map.hpp>
#include <string.h>
+struct THash
+{
+ size_t operator()( const char* s ) const
+ {
+ return rtl_str_hashCode(s);
+ }
+};
struct TCheck
{
bool operator()( const char* s1, const char* s2 ) const
@@ -42,7 +49,7 @@ struct TCheck
return strcmp( s1, s2 ) == 0;
}
};
-typedef boost::unordered_map< const char*, PPPOptimizerTokenEnum, boost::hash<const char*>, TCheck> TypeNameHashMap;
+typedef boost::unordered_map< const char*, PPPOptimizerTokenEnum, THash, TCheck> TypeNameHashMap;
static TypeNameHashMap* pHashMap = NULL;
static ::osl::Mutex& getHashMapMutex()
{