diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-02-11 12:38:16 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-02-11 12:38:16 +0000 |
commit | 74fa32edabf0765b0c9dbba01161b0d2aed81278 (patch) | |
tree | 4480a57ea8bc1025058559b6df75837a7815486a | |
parent | bd8bd1125def758bc8342f6ceed0dda0336eec73 (diff) |
(std|boost)::hash on a const char* hashes the pointer not the contents
-rw-r--r-- | sdext/source/minimizer/pppoptimizertoken.cxx | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sdext/source/minimizer/pppoptimizertoken.cxx b/sdext/source/minimizer/pppoptimizertoken.cxx index b625547..5fbfb16 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() { |