From 1ffc8d7a55af1c253ca363bb0fbdda26bb4c9c65 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 4 Nov 2006 12:51:01 +0000 Subject: [PATCH] define arrays of chartoo as the existing ones can't be used to store char values (bug 1572314) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/dynarray.h | 24 ++++++++++++++++++++++++ src/common/dynarray.cpp | 1 + tests/arrays/arrays.cpp | 10 ++++++++++ 3 files changed, 35 insertions(+) diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index be1a50a4db..3e9da36b53 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -805,6 +805,7 @@ private: \ WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid, WXDLLIMPEXP_BASE); +WX_DECLARE_USER_EXPORTED_BASEARRAY(char, wxBaseArrayChar, WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, WXDLLIMPEXP_BASE); @@ -830,6 +831,13 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); #define WX_DEFINE_USER_EXPORTED_ARRAY_PTR(T, name, expmode) \ WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayPtrVoid, expmode) +#define WX_DEFINE_ARRAY_CHAR(T, name) \ + WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayChar) +#define WX_DEFINE_EXPORTED_ARRAY_CHAR(T, name) \ + WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayChar) +#define WX_DEFINE_USER_EXPORTED_ARRAY_CHAR(T, name, expmode) \ + WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayChar, expmode) + #define WX_DEFINE_ARRAY_SHORT(T, name) \ WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayShort) #define WX_DEFINE_EXPORTED_ARRAY_SHORT(T, name) \ @@ -876,6 +884,13 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); #define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY(T, name, expmode) \ WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid, expmode) +#define WX_DEFINE_SORTED_ARRAY_CHAR(T, name) \ + WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayChar) +#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CHAR(T, name) \ + WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayChar) +#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CHAR(T, name, expmode) \ + WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayChar, expmode) + #define WX_DEFINE_SORTED_ARRAY_SHORT(T, name) \ WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayShort) #define WX_DEFINE_SORTED_EXPORTED_ARRAY_SHORT(T, name) \ @@ -917,6 +932,15 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ wxBaseArrayPtrVoid, expmode) +#define WX_DEFINE_SORTED_ARRAY_CMP_CHAR(T, cmpfunc, name) \ + WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayChar) +#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_CHAR(T, cmpfunc, name) \ + WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayChar) +#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_CHAR(T, cmpfunc, \ + name, expmode) \ + WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ + wxBaseArrayChar, expmode) + #define WX_DEFINE_SORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \ WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayShort) #define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \ diff --git a/src/common/dynarray.cpp b/src/common/dynarray.cpp index 954326986e..2157246df3 100644 --- a/src/common/dynarray.cpp +++ b/src/common/dynarray.cpp @@ -403,6 +403,7 @@ void name::insert(iterator it, const_iterator first, const_iterator last) \ #endif _WX_DEFINE_BASEARRAY(const void *, wxBaseArrayPtrVoid) +_WX_DEFINE_BASEARRAY(char, wxBaseArrayChar) _WX_DEFINE_BASEARRAY(short, wxBaseArrayShort) _WX_DEFINE_BASEARRAY(int, wxBaseArrayInt) _WX_DEFINE_BASEARRAY(long, wxBaseArrayLong) diff --git a/tests/arrays/arrays.cpp b/tests/arrays/arrays.cpp index e7c97b3f75..a776a2c1db 100644 --- a/tests/arrays/arrays.cpp +++ b/tests/arrays/arrays.cpp @@ -125,12 +125,18 @@ int wxCMPFUNC_CONV name ## RevCompare(T* first, T* second) \ typedef unsigned short ushort; +DEFINE_COMPARE(Char, char); DEFINE_COMPARE(UShort, ushort); DEFINE_COMPARE(Int, int); +WX_DEFINE_ARRAY_CHAR(char, wxArrayChar); +WX_DEFINE_SORTED_ARRAY_CHAR(char, wxSortedArrayCharNoCmp); +WX_DEFINE_SORTED_ARRAY_CMP_CHAR(char, CharCompareValues, wxSortedArrayChar); + WX_DEFINE_ARRAY_SHORT(ushort, wxArrayUShort); WX_DEFINE_SORTED_ARRAY_SHORT(ushort, wxSortedArrayUShortNoCmp); WX_DEFINE_SORTED_ARRAY_CMP_SHORT(ushort, UShortCompareValues, wxSortedArrayUShort); + WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt); // ---------------------------------------------------------------------------- @@ -148,6 +154,7 @@ private: CPPUNIT_TEST( wxObjArrayTest ); CPPUNIT_TEST( wxArrayUShortTest ); CPPUNIT_TEST( wxArrayIntTest ); + CPPUNIT_TEST( wxArrayCharTest ); CPPUNIT_TEST( TestSTL ); CPPUNIT_TEST( Alloc ); CPPUNIT_TEST_SUITE_END(); @@ -156,6 +163,7 @@ private: void wxObjArrayTest(); void wxArrayUShortTest(); void wxArrayIntTest(); + void wxArrayCharTest(); void TestSTL(); void Alloc(); @@ -359,6 +367,8 @@ void ArraysTestCase::wxArray ## name ## Test() \ TestArrayOf(UShort); +TestArrayOf(Char); + TestArrayOf(Int); void ArraysTestCase::Alloc() -- 2.47.2