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
This commit is contained in:
Vadim Zeitlin
2006-11-04 12:51:01 +00:00
parent 719bc6faad
commit 1ffc8d7a55
3 changed files with 35 additions and 0 deletions

View File

@@ -805,6 +805,7 @@ private: \
WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid, WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid,
WXDLLIMPEXP_BASE); 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(short, wxBaseArrayShort, WXDLLIMPEXP_BASE);
WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE);
WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, 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) \ #define WX_DEFINE_USER_EXPORTED_ARRAY_PTR(T, name, expmode) \
WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayPtrVoid, 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) \ #define WX_DEFINE_ARRAY_SHORT(T, name) \
WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayShort) WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayShort)
#define WX_DEFINE_EXPORTED_ARRAY_SHORT(T, name) \ #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) \ #define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY(T, name, expmode) \
WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid, 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) \ #define WX_DEFINE_SORTED_ARRAY_SHORT(T, name) \
WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayShort) WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayShort)
#define WX_DEFINE_SORTED_EXPORTED_ARRAY_SHORT(T, name) \ #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, \ WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \
wxBaseArrayPtrVoid, expmode) 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) \ #define WX_DEFINE_SORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \
WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayShort) WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayShort)
#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \ #define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \

View File

@@ -403,6 +403,7 @@ void name::insert(iterator it, const_iterator first, const_iterator last) \
#endif #endif
_WX_DEFINE_BASEARRAY(const void *, wxBaseArrayPtrVoid) _WX_DEFINE_BASEARRAY(const void *, wxBaseArrayPtrVoid)
_WX_DEFINE_BASEARRAY(char, wxBaseArrayChar)
_WX_DEFINE_BASEARRAY(short, wxBaseArrayShort) _WX_DEFINE_BASEARRAY(short, wxBaseArrayShort)
_WX_DEFINE_BASEARRAY(int, wxBaseArrayInt) _WX_DEFINE_BASEARRAY(int, wxBaseArrayInt)
_WX_DEFINE_BASEARRAY(long, wxBaseArrayLong) _WX_DEFINE_BASEARRAY(long, wxBaseArrayLong)

View File

@@ -125,12 +125,18 @@ int wxCMPFUNC_CONV name ## RevCompare(T* first, T* second) \
typedef unsigned short ushort; typedef unsigned short ushort;
DEFINE_COMPARE(Char, char);
DEFINE_COMPARE(UShort, ushort); DEFINE_COMPARE(UShort, ushort);
DEFINE_COMPARE(Int, int); 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_ARRAY_SHORT(ushort, wxArrayUShort);
WX_DEFINE_SORTED_ARRAY_SHORT(ushort, wxSortedArrayUShortNoCmp); WX_DEFINE_SORTED_ARRAY_SHORT(ushort, wxSortedArrayUShortNoCmp);
WX_DEFINE_SORTED_ARRAY_CMP_SHORT(ushort, UShortCompareValues, wxSortedArrayUShort); WX_DEFINE_SORTED_ARRAY_CMP_SHORT(ushort, UShortCompareValues, wxSortedArrayUShort);
WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt); WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -148,6 +154,7 @@ private:
CPPUNIT_TEST( wxObjArrayTest ); CPPUNIT_TEST( wxObjArrayTest );
CPPUNIT_TEST( wxArrayUShortTest ); CPPUNIT_TEST( wxArrayUShortTest );
CPPUNIT_TEST( wxArrayIntTest ); CPPUNIT_TEST( wxArrayIntTest );
CPPUNIT_TEST( wxArrayCharTest );
CPPUNIT_TEST( TestSTL ); CPPUNIT_TEST( TestSTL );
CPPUNIT_TEST( Alloc ); CPPUNIT_TEST( Alloc );
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
@@ -156,6 +163,7 @@ private:
void wxObjArrayTest(); void wxObjArrayTest();
void wxArrayUShortTest(); void wxArrayUShortTest();
void wxArrayIntTest(); void wxArrayIntTest();
void wxArrayCharTest();
void TestSTL(); void TestSTL();
void Alloc(); void Alloc();
@@ -359,6 +367,8 @@ void ArraysTestCase::wxArray ## name ## Test() \
TestArrayOf(UShort); TestArrayOf(UShort);
TestArrayOf(Char);
TestArrayOf(Int); TestArrayOf(Int);
void ArraysTestCase::Alloc() void ArraysTestCase::Alloc()