fixed __FUNCTION__ use in Unicode build (it's a variable, not a macro)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -48,10 +48,9 @@
|
||||
#endif /* __WXDEBUG__ */
|
||||
|
||||
/* TODO: add more compilers supporting __FUNCTION__ */
|
||||
#if defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1300)
|
||||
#define __TFUNC__ wxAPPLY_T(__FUNCTION__)
|
||||
#else /* old compilers without __FUNCTION__ support */
|
||||
#define __TFUNC__ _T("")
|
||||
#if !defined(__GNUC__) && !(defined(_MSC_VER) && _MSC_VER >= 1300)
|
||||
/* no __FUNCTION__ support, still define it to avoid #ifdefs elsewhere */
|
||||
#define __FUNCTION__ (NULL)
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
@@ -85,13 +84,13 @@
|
||||
|
||||
Parameters:
|
||||
szFile and nLine - file name and line number of the ASSERT
|
||||
szFunc - function name of the ASSERT, may be empty
|
||||
szFunc - function name of the ASSERT, may be NULL (NB: ASCII)
|
||||
szCond - text form of the condition which failed
|
||||
szMsg - optional message explaining the reason
|
||||
*/
|
||||
extern void WXDLLIMPEXP_BASE wxOnAssert(const wxChar *szFile,
|
||||
int nLine,
|
||||
const wxChar *szFunc,
|
||||
const char *szFunc,
|
||||
const wxChar *szCond,
|
||||
const wxChar *szMsg = NULL);
|
||||
|
||||
@@ -107,14 +106,14 @@
|
||||
if ( cond ) \
|
||||
; \
|
||||
else \
|
||||
wxOnAssert(__TFILE__, __LINE__, __TFUNC__, _T(#cond), msg)
|
||||
wxOnAssert(__TFILE__, __LINE__, __FUNCTION__, _T(#cond), msg)
|
||||
|
||||
/* special form of assert: always triggers it (in debug mode) */
|
||||
#define wxFAIL wxFAIL_MSG(NULL)
|
||||
|
||||
/* FAIL with some message */
|
||||
#define wxFAIL_MSG(msg) \
|
||||
wxOnAssert(__TFILE__, __LINE__, __TFUNC__, _T("wxAssertFailure"), msg)
|
||||
wxOnAssert(__TFILE__, __LINE__, __FUNCTION__, _T("wxAssertFailure"), msg)
|
||||
|
||||
/* an assert helper used to avoid warning when testing constant expressions, */
|
||||
/* i.e. wxASSERT( sizeof(int) == 4 ) can generate a compiler warning about */
|
||||
@@ -168,7 +167,7 @@
|
||||
else \
|
||||
do \
|
||||
{ \
|
||||
wxOnAssert(__TFILE__, __LINE__, __TFUNC__, _T(#cond), msg); \
|
||||
wxOnAssert(__TFILE__, __LINE__, __FUNCTION__, _T(#cond), msg); \
|
||||
op; \
|
||||
} while ( 0 )
|
||||
|
||||
|
@@ -449,7 +449,7 @@ void wxAppConsole::OnAssert(const wxChar *file,
|
||||
const wxChar *cond,
|
||||
const wxChar *msg)
|
||||
{
|
||||
OnAssertFailure(file, line, _T(""), cond, msg);
|
||||
OnAssertFailure(file, line, NULL, cond, msg);
|
||||
}
|
||||
|
||||
#endif // __WXDEBUG__
|
||||
@@ -600,7 +600,7 @@ void wxTrap()
|
||||
// this function is called when an assert fails
|
||||
void wxOnAssert(const wxChar *szFile,
|
||||
int nLine,
|
||||
const wxChar *szFunc,
|
||||
const char *szFunc,
|
||||
const wxChar *szCond,
|
||||
const wxChar *szMsg)
|
||||
{
|
||||
@@ -619,16 +619,19 @@ void wxOnAssert(const wxChar *szFile,
|
||||
|
||||
s_bInAssert = true;
|
||||
|
||||
// __FUNCTION__ is always in ASCII, convert it to wide char if needed
|
||||
const wxString strFunc = wxString::FromAscii(szFunc);
|
||||
|
||||
if ( !wxTheApp )
|
||||
{
|
||||
// by default, show the assert dialog box -- we can't customize this
|
||||
// behaviour
|
||||
ShowAssertDialog(szFile, nLine, szFunc, szCond, szMsg);
|
||||
ShowAssertDialog(szFile, nLine, strFunc, szCond, szMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
// let the app process it as it wants
|
||||
wxTheApp->OnAssertFailure(szFile, nLine, szFunc, szCond, szMsg);
|
||||
wxTheApp->OnAssertFailure(szFile, nLine, strFunc, szCond, szMsg);
|
||||
}
|
||||
|
||||
s_bInAssert = false;
|
||||
|
Reference in New Issue
Block a user