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 | 39ec189d250aec2b1dfdc8cd6be3dac222a613e1 (patch) | |
tree | f7c3fea4f829f429ad484ed8f78813ce82cdeaba /sdext | |
parent | 36fe59b73bf5d33663eef3027de7618c90d4de1a (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.cxx | 9 |
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() { |