X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7f0586ef60f9ac456ebad639026c14ed89d46c8b..cafc76a4bbbcb59f1c48d9c8f592c671238ffb51:/include/wx/hashmap.h?ds=sidebyside diff --git a/include/wx/hashmap.h b/include/wx/hashmap.h index 87a911d53a..4ac35a37e0 100644 --- a/include/wx/hashmap.h +++ b/include/wx/hashmap.h @@ -74,11 +74,7 @@ protected: static void** AllocTable( size_t sz ) { -#ifdef __WXWINCE__ - return (void **)malloc(sz * sizeof(void*)); -#else return (void **)calloc(sz, sizeof(void*)); -#endif } }; @@ -378,7 +374,6 @@ public: \ typedef const VALUE_T const_t2; \ \ CLASSNAME( const const_t1& f, const const_t2& s ):first(t1(f)),second(t2(s)) {} \ - CLASSNAME( const const_t1& f ):first(t1(f)),second(t2()) {} \ \ t1 first; \ t2 second; \ @@ -521,7 +516,7 @@ public: \ \ mapped_type& operator[]( const const_key_type& key ) \ { \ - return GetOrCreateNode( CLASSNAME##_wxImplementation_Pair( key ) )->m_value.second; \ + return GetOrCreateNode( CLASSNAME##_wxImplementation_Pair( key, mapped_type() ) )->m_value.second; \ } \ \ const_iterator find( const const_key_type& key ) const \ @@ -560,16 +555,28 @@ public: \ // and these do exactly the same thing but should be used inside the // library +#define WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL) \ + _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL ) + #define WX_DECLARE_EXPORTED_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, class WXDLLEXPORT ) + WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, \ + CLASSNAME, class WXDLLEXPORT ) -#define WX_DECLARE_EXPORTED_STRING_HASH_MAP( VALUE_T, CLASSNAME ) \ +#define WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \ _WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \ - CLASSNAME, class WXDLLEXPORT ) + CLASSNAME, DECL ) -#define WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP( VALUE_T, CLASSNAME ) \ +#define WX_DECLARE_EXPORTED_STRING_HASH_MAP( VALUE_T, CLASSNAME ) \ + WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \ + class WXDLLEXPORT ) + +#define WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \ _WX_DECLARE_HASH_MAP( void*, VALUE_T, wxPointerHash, wxPointerEqual, \ - CLASSNAME, class WXDLLEXPORT ) + CLASSNAME, DECL ) + +#define WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP( VALUE_T, CLASSNAME ) \ + WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \ + class WXDLLEXPORT ) // delete all hash elements // @@ -579,7 +586,7 @@ public: \ // count on it)! #define WX_CLEAR_HASH_MAP(type, hashmap) \ { \ - type##::iterator it, en; \ + type::iterator it, en; \ for( it = (hashmap).begin(), en = (hashmap).end(); it != en; ++it ) \ delete it->second; \ (hashmap).clear(); \