X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a6d9c7680c19f25613380ab5b151806da6decb0..5edef14ec87e7fe2e1c48ed5f1a466ba60ece81a:/include/wx/hash.h?ds=sidebyside diff --git a/include/wx/hash.h b/include/wx/hash.h index 4196d68308..337eb80371 100644 --- a/include/wx/hash.h +++ b/include/wx/hash.h @@ -18,12 +18,20 @@ #include "wx/defs.h" +#if !wxUSE_STL && WXWIN_COMPATIBILITY_2_4 + #define wxUSE_OLD_HASH_TABLE 1 +#else + #define wxUSE_OLD_HASH_TABLE 0 +#endif + #if !wxUSE_STL #include "wx/object.h" - #include "wx/list.h" #else class WXDLLIMPEXP_BASE wxObject; #endif +#if wxUSE_OLD_HASH_TABLE + #include "wx/list.h" +#endif #if WXWIN_COMPATIBILITY_2_4 #include "wx/dynarray.h" #endif @@ -43,7 +51,7 @@ // pointers to objects // ---------------------------------------------------------------------------- -#if !wxUSE_STL +#if wxUSE_OLD_HASH_TABLE class WXDLLIMPEXP_BASE wxHashTableBase : public wxObject { @@ -83,7 +91,7 @@ private: DECLARE_NO_COPY_CLASS(wxHashTableBase) }; -#else // if wxUSE_STL +#else // if !wxUSE_OLD_HASH_TABLE #if !defined(wxENUM_KEY_TYPE_DEFINED) #define wxENUM_KEY_TYPE_DEFINED @@ -151,7 +159,7 @@ public: typedef wxHashTableBase_Node Node; wxHashTableBase(); - virtual ~wxHashTableBase(); + virtual ~wxHashTableBase() { }; void Create( wxKeyType keyType = wxKEY_INTEGER, size_t size = wxHASH_SIZE_DEFAULT ); @@ -215,7 +223,7 @@ private: DECLARE_NO_COPY_CLASS(wxHashTableBase) }; -#endif // !wxUSE_STL +#endif // wxUSE_OLD_HASH_TABLE #if !wxUSE_STL @@ -294,13 +302,13 @@ private: #endif // WXWIN_COMPATIBILITY_2_4 -#endif // !wxUSE_STL +#endif // !wxUSE_STL // ---------------------------------------------------------------------------- // for compatibility only // ---------------------------------------------------------------------------- -#if wxUSE_STL +#if !wxUSE_OLD_HASH_TABLE class WXDLLIMPEXP_BASE wxHashTable_Node : public wxHashTableBase_Node { @@ -336,9 +344,9 @@ public: : wxHashTableBase() { Create( keyType, size ); BeginFind(); } wxHashTable( const wxHashTable& table ); - const wxHashTable& operator=( const wxHashTable& ); + virtual ~wxHashTable() { Destroy(); } - void Destroy() { Clear(); } + const wxHashTable& operator=( const wxHashTable& ); // key and value are the same void Put(long value, wxObject *object) @@ -401,7 +409,7 @@ private: size_t m_currBucket; }; -#else // if !wxUSE_STL +#else // if wxUSE_OLD_HASH_TABLE class WXDLLIMPEXP_BASE wxHashTable : public wxObject { @@ -492,9 +500,9 @@ private: DECLARE_DYNAMIC_CLASS(wxHashTable) }; -#endif +#endif // wxUSE_OLD_HASH_TABLE -#if wxUSE_STL +#if !wxUSE_OLD_HASH_TABLE // defines a new type safe hash table which stores the elements of type eltype // in lists of class listclass @@ -506,9 +514,8 @@ private: size_t size = wxHASH_SIZE_DEFAULT) \ : wxHashTableBase() { Create(keyType, size); } \ \ - ~hashclass() { Destroy(); } \ + virtual ~hashclass() { Destroy(); } \ \ - void Destroy() { Clear(); } \ void Put(long key, eltype *data) { DoPut(key, key, (void*)data); } \ void Put(long hash, long key, eltype *data) \ { DoPut(key, hash, (void*)data); } \ @@ -525,7 +532,7 @@ private: DECLARE_NO_COPY_CLASS(hashclass) \ } -#else // if !wxUSE_STL +#else // if wxUSE_OLD_HASH_TABLE #define _WX_DECLARE_HASH(eltype, listclass, hashclass, classexp) \ classexp hashclass : public wxHashTableBase \ @@ -587,7 +594,7 @@ private: DECLARE_NO_COPY_CLASS(hashclass) \ } -#endif +#endif // wxUSE_OLD_HASH_TABLE // this macro is to be used in the user code #define WX_DECLARE_HASH(el, list, hash) \