X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/886dd7d28e50c003cc88b81b968d487a3c17b0d7..fd497edeadc345a03516e5078a5cb3e131d715d6:/include/wx/hash.h diff --git a/include/wx/hash.h b/include/wx/hash.h index 905544a4bd..5ac029b01e 100644 --- a/include/wx/hash.h +++ b/include/wx/hash.h @@ -34,7 +34,7 @@ // pointers to objects // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxHashTableBase : public wxObject +class WXDLLIMPEXP_BASE wxHashTableBase : public wxObject { public: wxHashTableBase(); @@ -72,11 +72,13 @@ private: DECLARE_NO_COPY_CLASS(wxHashTableBase) }; +#if WXWIN_COMPATIBILITY_2_4 + // ---------------------------------------------------------------------------- // a hash table which stores longs // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxHashTableLong : public wxObject +class WXDLLIMPEXP_BASE wxHashTableLong : public wxObject { public: wxHashTableLong(size_t size = wxHASH_SIZE_DEFAULT) @@ -114,7 +116,7 @@ private: // wxStringHashTable: a hash table which indexes strings with longs // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxStringHashTable : public wxObject +class WXDLLIMPEXP_BASE wxStringHashTable : public wxObject { public: wxStringHashTable(size_t sizeTable = wxHASH_SIZE_DEFAULT); @@ -143,11 +145,13 @@ private: DECLARE_NO_COPY_CLASS(wxStringHashTable) }; +#endif + // ---------------------------------------------------------------------------- // for compatibility only // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxHashTable : public wxObject +class WXDLLIMPEXP_BASE wxHashTable : public wxObject { public: int n; @@ -305,5 +309,23 @@ private: #define WX_DECLARE_USER_EXPORTED_HASH(el, list, hash, usergoo) \ _WX_DECLARE_HASH(el, list, hash, class usergoo) +// delete all hash elements +// +// NB: the class declaration of the hash elements must be visible from the +// place where you use this macro, otherwise the proper destructor may not +// be called (a decent compiler should give a warning about it, but don't +// count on it)! +#define WX_CLEAR_HASH_TABLE(array) \ + { \ + (array).BeginFind(); \ + wxNode* it = (array).Next(); \ + while( it ) \ + { \ + delete it->GetData(); \ + it = (array).Next(); \ + } \ + (array).Clear(); \ + } + #endif // _WX_HASH_H__