when !WXWIN_COMPATIBILITY_24. It is faster. It is almost 100%
compatible, too, the only difference being Next() return value
type.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27040
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxZlibInputStream is not by default compatible with the output of the
2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode,
switched on by passing wxZLIB_24COMPATIBLE to the constructor.
- wxZlibInputStream is not by default compatible with the output of the
2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode,
switched on by passing wxZLIB_24COMPATIBLE to the constructor.
+- when WXWIN_COMPATIBILITY_2_4 == 0 wxHashTable uses a new implementation
+ not using wxList keyed interface (the same used when wxUSE_STL == 1),
+ the only incompatibility being that Next() returns a wxHashTable::Node*
+ instead of a wxNode*.
wxTaskBarIcon must be explicitly destroyed now, otherwise the application
won't exit even though there are no top level windows
wxTaskBarIcon must be explicitly destroyed now, otherwise the application
won't exit even though there are no top level windows
+#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"
#if !wxUSE_STL
#include "wx/object.h"
#else
class WXDLLIMPEXP_BASE wxObject;
#endif
#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
#if WXWIN_COMPATIBILITY_2_4
#include "wx/dynarray.h"
#endif
// pointers to objects
// ----------------------------------------------------------------------------
// pointers to objects
// ----------------------------------------------------------------------------
+#if wxUSE_OLD_HASH_TABLE
class WXDLLIMPEXP_BASE wxHashTableBase : public wxObject
{
class WXDLLIMPEXP_BASE wxHashTableBase : public wxObject
{
DECLARE_NO_COPY_CLASS(wxHashTableBase)
};
DECLARE_NO_COPY_CLASS(wxHashTableBase)
};
+#else // if !wxUSE_OLD_HASH_TABLE
#if !defined(wxENUM_KEY_TYPE_DEFINED)
#define wxENUM_KEY_TYPE_DEFINED
#if !defined(wxENUM_KEY_TYPE_DEFINED)
#define wxENUM_KEY_TYPE_DEFINED
DECLARE_NO_COPY_CLASS(wxHashTableBase)
};
DECLARE_NO_COPY_CLASS(wxHashTableBase)
};
+#endif // wxUSE_OLD_HASH_TABLE
#endif // WXWIN_COMPATIBILITY_2_4
#endif // WXWIN_COMPATIBILITY_2_4
// ----------------------------------------------------------------------------
// for compatibility only
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// for compatibility only
// ----------------------------------------------------------------------------
+#if !wxUSE_OLD_HASH_TABLE
class WXDLLIMPEXP_BASE wxHashTable_Node : public wxHashTableBase_Node
{
class WXDLLIMPEXP_BASE wxHashTable_Node : public wxHashTableBase_Node
{
+#else // if wxUSE_OLD_HASH_TABLE
class WXDLLIMPEXP_BASE wxHashTable : public wxObject
{
class WXDLLIMPEXP_BASE wxHashTable : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxHashTable)
};
DECLARE_DYNAMIC_CLASS(wxHashTable)
};
+#endif // wxUSE_OLD_HASH_TABLE
+#if !wxUSE_OLD_HASH_TABLE
// defines a new type safe hash table which stores the elements of type eltype
// in lists of class listclass
// defines a new type safe hash table which stores the elements of type eltype
// in lists of class listclass
DECLARE_NO_COPY_CLASS(hashclass) \
}
DECLARE_NO_COPY_CLASS(hashclass) \
}
+#else // if wxUSE_OLD_HASH_TABLE
#define _WX_DECLARE_HASH(eltype, listclass, hashclass, classexp) \
classexp hashclass : public wxHashTableBase \
#define _WX_DECLARE_HASH(eltype, listclass, hashclass, classexp) \
classexp hashclass : public wxHashTableBase \
DECLARE_NO_COPY_CLASS(hashclass) \
}
DECLARE_NO_COPY_CLASS(hashclass) \
}
+#endif // wxUSE_OLD_HASH_TABLE
// this macro is to be used in the user code
#define WX_DECLARE_HASH(el, list, hash) \
// this macro is to be used in the user code
#define WX_DECLARE_HASH(el, list, hash) \
+#if wxUSE_OLD_HASH_TABLE
#include <string.h>
#include <stdarg.h>
#include <string.h>
#include <stdarg.h>
-#else // if wxUSE_STL
-
-#include "wx/object.h"
+#else // if !wxUSE_OLD_HASH_TABLE
wxHashTableBase_Node::wxHashTableBase_Node( long key, void* value,
wxHashTableBase* table )
wxHashTableBase_Node::wxHashTableBase_Node( long key, void* value,
wxHashTableBase* table )
+#endif // !wxUSE_OLD_HASH_TABLE