From: Włodzimierz Skiba Date: Tue, 19 Oct 2004 21:00:17 +0000 (+0000) Subject: OW warning fix. Our compile time asserts warns when used within function and dedicate... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/7da60d7c18d4b7a9ed586208cc6174b87b55db91 OW warning fix. Our compile time asserts warns when used within function and dedicated #pragma seems not influence it so they are moved from functions into global space as near as possible. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/thread.h b/include/wx/thread.h index 7c7bab4351..07f886e973 100644 --- a/include/wx/thread.h +++ b/include/wx/thread.h @@ -32,6 +32,10 @@ #undef Yield #endif +#ifdef __WXMSW__ + #include "wx/msw/wrapwin.h" +#endif + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -243,8 +247,7 @@ 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 from - // thread.cpp and will need to increase the buffer size + // if CRITICAL_SECTION size changes in Windows, you'll get an assert below // // finally, we need this typedef instead of declaring m_buffer directly // because otherwise the assert mentioned above wouldn't compile with some @@ -254,6 +257,10 @@ private: #else // __WIN32__ typedef char wxCritSectBuffer[24]; #endif + +wxCOMPILE_TIME_ASSERT( sizeof(CRITICAL_SECTION) <= sizeof(wxCritSectBuffer), + wxCriticalSectionBufferTooSmall ); + union { unsigned long m_dummy1; diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 94799d1a96..1fd38e5e25 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -1181,15 +1181,17 @@ bool wxFileName::IsCaseSensitive( wxPathFormat format ) return GetFormat(format) == wxPATH_UNIX; } +// If asserts, wxPathFormat has been changed. +wxCOMPILE_TIME_ASSERT(wxPATH_MAX == 5, wxPathFormatChanged); + /* static */ wxString wxFileName::GetForbiddenChars(wxPathFormat format) { // Inits to forbidden characters that are common to (almost) all platforms. wxString strForbiddenChars = wxT("*?"); - // If asserts, wxPathFormat has been changed. In case of a new path format + // 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 : diff --git a/src/msw/cursor.cpp b/src/msw/cursor.cpp index f546bd06b3..28108588a1 100644 --- a/src/msw/cursor.cpp +++ b/src/msw/cursor.cpp @@ -275,54 +275,54 @@ wxCursor::wxCursor(const wxString& filename, } } -// Cursors by stock number -wxCursor::wxCursor(int idCursor) +// all wxWidgets standard cursors +static const struct StdCursor { - // all wxWidgets standard cursors - static const struct StdCursor - { - // is this a standard Windows cursor? - bool isStd; + // is this a standard Windows cursor? + bool isStd; - // the cursor name or id - LPCTSTR name; - } stdCursors[] = - { - { true, NULL }, // wxCURSOR_NONE - { true, IDC_ARROW }, // wxCURSOR_ARROW - { false, _T("WXCURSOR_RIGHT_ARROW") }, // wxCURSOR_RIGHT_ARROW - { false, _T("WXCURSOR_BULLSEYE") }, // wxCURSOR_BULLSEYE - { true, IDC_ARROW }, // WXCURSOR_CHAR - { true, IDC_CROSS }, // WXCURSOR_CROSS - { false, _T("WXCURSOR_HAND") }, // wxCURSOR_HAND - { true, IDC_IBEAM }, // WXCURSOR_IBEAM - { true, IDC_ARROW }, // WXCURSOR_LEFT_BUTTON - { false, _T("WXCURSOR_MAGNIFIER") }, // wxCURSOR_MAGNIFIER - { true, IDC_ARROW }, // WXCURSOR_MIDDLE_BUTTON - { true, IDC_NO }, // WXCURSOR_NO_ENTRY - { false, _T("WXCURSOR_PBRUSH") }, // wxCURSOR_PAINT_BRUSH - { false, _T("WXCURSOR_PENCIL") }, // wxCURSOR_PENCIL - { false, _T("WXCURSOR_PLEFT") }, // wxCURSOR_POINT_LEFT - { false, _T("WXCURSOR_PRIGHT") }, // wxCURSOR_POINT_RIGHT - { true, IDC_HELP }, // WXCURSOR_QUESTION_ARROW - { true, IDC_ARROW }, // WXCURSOR_RIGHT_BUTTON - { true, IDC_SIZENESW }, // WXCURSOR_SIZENESW - { true, IDC_SIZENS }, // WXCURSOR_SIZENS - { true, IDC_SIZENWSE }, // WXCURSOR_SIZENWSE - { true, IDC_SIZEWE }, // WXCURSOR_SIZEWE - { true, IDC_SIZEALL }, // WXCURSOR_SIZING - { false, _T("WXCURSOR_PBRUSH") }, // wxCURSOR_SPRAYCAN - { true, IDC_WAIT }, // WXCURSOR_WAIT - { false, _T("WXCURSOR_WATCH") }, // WXCURSOR_WATCH - { false, _T("WXCURSOR_BLANK") }, // wxCURSOR_BLANK - { true, IDC_APPSTARTING }, // wxCURSOR_ARROWWAIT - - // no entry for wxCURSOR_MAX - }; - - wxCOMPILE_TIME_ASSERT( WXSIZEOF(stdCursors) == wxCURSOR_MAX, - CursorsIdArrayMismatch ); + // the cursor name or id + LPCTSTR name; +} stdCursors[] = +{ + { true, NULL }, // wxCURSOR_NONE + { true, IDC_ARROW }, // wxCURSOR_ARROW + { false, _T("WXCURSOR_RIGHT_ARROW") }, // wxCURSOR_RIGHT_ARROW + { false, _T("WXCURSOR_BULLSEYE") }, // wxCURSOR_BULLSEYE + { true, IDC_ARROW }, // WXCURSOR_CHAR + { true, IDC_CROSS }, // WXCURSOR_CROSS + { false, _T("WXCURSOR_HAND") }, // wxCURSOR_HAND + { true, IDC_IBEAM }, // WXCURSOR_IBEAM + { true, IDC_ARROW }, // WXCURSOR_LEFT_BUTTON + { false, _T("WXCURSOR_MAGNIFIER") }, // wxCURSOR_MAGNIFIER + { true, IDC_ARROW }, // WXCURSOR_MIDDLE_BUTTON + { true, IDC_NO }, // WXCURSOR_NO_ENTRY + { false, _T("WXCURSOR_PBRUSH") }, // wxCURSOR_PAINT_BRUSH + { false, _T("WXCURSOR_PENCIL") }, // wxCURSOR_PENCIL + { false, _T("WXCURSOR_PLEFT") }, // wxCURSOR_POINT_LEFT + { false, _T("WXCURSOR_PRIGHT") }, // wxCURSOR_POINT_RIGHT + { true, IDC_HELP }, // WXCURSOR_QUESTION_ARROW + { true, IDC_ARROW }, // WXCURSOR_RIGHT_BUTTON + { true, IDC_SIZENESW }, // WXCURSOR_SIZENESW + { true, IDC_SIZENS }, // WXCURSOR_SIZENS + { true, IDC_SIZENWSE }, // WXCURSOR_SIZENWSE + { true, IDC_SIZEWE }, // WXCURSOR_SIZEWE + { true, IDC_SIZEALL }, // WXCURSOR_SIZING + { false, _T("WXCURSOR_PBRUSH") }, // wxCURSOR_SPRAYCAN + { true, IDC_WAIT }, // WXCURSOR_WAIT + { false, _T("WXCURSOR_WATCH") }, // WXCURSOR_WATCH + { false, _T("WXCURSOR_BLANK") }, // wxCURSOR_BLANK + { true, IDC_APPSTARTING }, // wxCURSOR_ARROWWAIT + + // no entry for wxCURSOR_MAX +}; + +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") ); diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index 8336fc4af7..4347b84820 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -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 diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp index 0a1d611ca4..54279fb6b4 100644 --- a/src/msw/thread.cpp +++ b/src/msw/thread.cpp @@ -144,9 +144,6 @@ static bool gs_waitingForThread = false; wxCriticalSection::wxCriticalSection() { - wxCOMPILE_TIME_ASSERT( sizeof(CRITICAL_SECTION) <= sizeof(wxCritSectBuffer), - wxCriticalSectionBufferTooSmall ); - ::InitializeCriticalSection((CRITICAL_SECTION *)m_buffer); }