]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/hashmap.h
GTK1 fixes after wxObject-derived classes copy ctors/assignment operators simplificat...
[wxWidgets.git] / include / wx / hashmap.h
index ae3667ce41a5f84777cee6397b9ceefbb41681c4..8e8cffcc56047c80cba358348f4f515ee71a04dc 100644 (file)
@@ -34,7 +34,7 @@
 #endif
 
 #define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \
-    typedef WX_HASH_MAP_NAMESPACE::hash_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME;
+    typedef WX_HASH_MAP_NAMESPACE::hash_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME
 
 #else // !wxUSE_STL || !defined(HAVE_STL_HASH_MAP)
 
@@ -337,7 +337,8 @@ protected: \
     /* returns NULL if not found */ \
     Node** GetNodePtr( const const_key_type& key ) const \
     { \
-        Node** node = &m_table[m_hasher( key ) % m_tableBuckets]; \
+        size_t bucket = m_hasher( key ) % m_tableBuckets; \
+        Node** node = &m_table[bucket]; \
  \
         while( *node ) \
         { \
@@ -353,7 +354,8 @@ protected: \
     /* expressing it in terms of GetNodePtr is 5-8% slower :-( */ \
     Node* GetNode( const const_key_type& key ) const \
     { \
-        Node* node = m_table[m_hasher( key ) % m_tableBuckets]; \
+        size_t bucket = m_hasher( key ) % m_tableBuckets; \
+        Node* node = m_table[bucket]; \
  \
         while( node ) \
         { \
@@ -460,11 +462,13 @@ class WXDLLIMPEXP_BASE wxIntegerHash
     WX_HASH_MAP_NAMESPACE::hash<short> shortHash;
     WX_HASH_MAP_NAMESPACE::hash<unsigned short> ushortHash;
 
+#if defined wxLongLong_t && !defined wxLongLongIsLong
     size_t longlongHash( wxLongLong_t x ) const
     {
         return longHash( wx_truncate_cast(long, x) ) ^
                longHash( wx_truncate_cast(long, x >> (sizeof(long) * 8)) );
     }
+#endif
 
 public:
     wxIntegerHash() { }