Correct fix to the compile time assert under OW. Kudos to Vadim to the tip.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -198,8 +198,17 @@
|
||||
|
||||
It may be used both within a function and in the global scope.
|
||||
*/
|
||||
#ifdef __WATCOMC__
|
||||
/* avoid "unused symbol" warning */
|
||||
#define wxCOMPILE_TIME_ASSERT(expr, msg) \
|
||||
class wxMAKE_UNIQUE_ASSERT_NAME { \
|
||||
unsigned int msg: expr; \
|
||||
wxMAKE_UNIQUE_ASSERT_NAME(){wxUnusedVar(msg);} \
|
||||
}
|
||||
#else
|
||||
#define wxCOMPILE_TIME_ASSERT(expr, msg) \
|
||||
struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }
|
||||
#endif
|
||||
|
||||
|
||||
/* for compatibility only, don't use any more, not needed */
|
||||
|
@@ -32,10 +32,6 @@
|
||||
#undef Yield
|
||||
#endif
|
||||
|
||||
#ifdef __WXMSW__
|
||||
#include "wx/msw/wrapwin.h"
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -247,7 +243,8 @@ private:
|
||||
// include windows.h from this public header and we also have to use the
|
||||
// union to force the correct (i.e. maximal) alignment
|
||||
//
|
||||
// if CRITICAL_SECTION size changes in Windows, you'll get an assert below
|
||||
// if CRITICAL_SECTION size changes in Windows, you'll get an assert from
|
||||
// thread.cpp and will need to increase the buffer size
|
||||
//
|
||||
// finally, we need this typedef instead of declaring m_buffer directly
|
||||
// because otherwise the assert mentioned above wouldn't compile with some
|
||||
@@ -257,10 +254,6 @@ private:
|
||||
#else // __WIN32__
|
||||
typedef char wxCritSectBuffer[24];
|
||||
#endif
|
||||
|
||||
wxCOMPILE_TIME_ASSERT( sizeof(CRITICAL_SECTION) <= sizeof(wxCritSectBuffer),
|
||||
wxCriticalSectionBufferTooSmall );
|
||||
|
||||
union
|
||||
{
|
||||
unsigned long m_dummy1;
|
||||
|
@@ -1190,8 +1190,9 @@ wxString wxFileName::GetForbiddenChars(wxPathFormat format)
|
||||
// Inits to forbidden characters that are common to (almost) all platforms.
|
||||
wxString strForbiddenChars = wxT("*?");
|
||||
|
||||
// In case of a new path format
|
||||
// If asserts, wxPathFormat has been changed. In case of a new path format
|
||||
// addition, the following code might have to be updated.
|
||||
wxCOMPILE_TIME_ASSERT(wxPATH_MAX == 5, wxPathFormatChanged);
|
||||
switch ( GetFormat(format) )
|
||||
{
|
||||
default :
|
||||
|
@@ -275,6 +275,9 @@ wxCursor::wxCursor(const wxString& filename,
|
||||
}
|
||||
}
|
||||
|
||||
// Cursors by stock number
|
||||
wxCursor::wxCursor(int idCursor)
|
||||
{
|
||||
// all wxWidgets standard cursors
|
||||
static const struct StdCursor
|
||||
{
|
||||
@@ -320,9 +323,6 @@ static const struct StdCursor
|
||||
wxCOMPILE_TIME_ASSERT( WXSIZEOF(stdCursors) == wxCURSOR_MAX,
|
||||
CursorsIdArrayMismatch );
|
||||
|
||||
// Cursors by stock number
|
||||
wxCursor::wxCursor(int idCursor)
|
||||
{
|
||||
wxCHECK_RET( idCursor > 0 && (size_t)idCursor < WXSIZEOF(stdCursors),
|
||||
_T("invalid cursor id in wxCursor() ctor") );
|
||||
|
||||
|
@@ -113,16 +113,16 @@ public:
|
||||
m_pItem = &item;
|
||||
}
|
||||
|
||||
// memcpy() in Init() can't work if the struct sizes are different
|
||||
wxCOMPILE_TIME_ASSERT( sizeof(LV_ITEM_OTHER) == sizeof(LV_ITEM_NATIVE),
|
||||
CodeCantWorkIfDiffSizes);
|
||||
|
||||
// init with conversion
|
||||
void Init(LV_ITEM_OTHER& item)
|
||||
{
|
||||
// avoid unnecessary dynamic memory allocation, jjust make m_pItem
|
||||
// point to our own m_item
|
||||
|
||||
// memcpy() can't work if the struct sizes are different
|
||||
wxCOMPILE_TIME_ASSERT( sizeof(LV_ITEM_OTHER) == sizeof(LV_ITEM_NATIVE),
|
||||
CodeCantWorkIfDiffSizes);
|
||||
|
||||
memcpy(&m_item, &item, sizeof(LV_ITEM_NATIVE));
|
||||
|
||||
// convert text from ANSI to Unicod if necessary
|
||||
|
@@ -144,6 +144,9 @@ static bool gs_waitingForThread = false;
|
||||
|
||||
wxCriticalSection::wxCriticalSection()
|
||||
{
|
||||
wxCOMPILE_TIME_ASSERT( sizeof(CRITICAL_SECTION) <= sizeof(wxCritSectBuffer),
|
||||
wxCriticalSectionBufferTooSmall );
|
||||
|
||||
::InitializeCriticalSection((CRITICAL_SECTION *)m_buffer);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user