X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..93928d517b4f748fb8bdbd7e0ae5334e2e3a8562:/include/wx/listimpl.cpp

diff --git a/include/wx/listimpl.cpp b/include/wx/listimpl.cpp
index 3beb66103d..1027f4eaab 100644
--- a/include/wx/listimpl.cpp
+++ b/include/wx/listimpl.cpp
@@ -6,19 +6,31 @@
 // Created:     16/11/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#define _DEFINE_LIST(T, name)                   \
-    void wx##name##Node::DeleteData()    \
-    {                                           \
-        delete (T *)GetData();                  \
-    }
+#if wxUSE_STL
 
-// redefine the macro so that now it will generate the class implementation
-// old value would provoke a compile-time error if this file is not included
 #undef  WX_DEFINE_LIST
-#define WX_DEFINE_LIST(name) _DEFINE_LIST(_WX_LIST_ITEM_TYPE_##name, name)
+#define WX_DEFINE_LIST(name)                                                  \
+    void _WX_LIST_HELPER_##name::DeleteFunction( _WX_LIST_ITEM_TYPE_##name X )\
+    {                                                                         \
+        delete X;                                                             \
+    }                                                                         \
+    name::BaseListType name::EmptyList;
+
+#else // !wxUSE_STL
+    #undef WX_DEFINE_LIST_2
+    #define WX_DEFINE_LIST_2(T, name)     \
+        void wx##name##Node::DeleteData() \
+        {                                 \
+            delete (T *)GetData();        \
+        }
+
+    // redefine the macro so that now it will generate the class implementation
+    // old value would provoke a compile-time error if this file is not included
+    #undef  WX_DEFINE_LIST
+    #define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name)
+
+#endif // wxUSE_STL/!wxUSE_STL
 
-// don't pollute preprocessor's name space
-//#undef  _DEFINE_LIST