]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed __FUNCTION__ use in Unicode build (it's a variable, not a macro)
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 21 Mar 2006 17:00:16 +0000 (17:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 21 Mar 2006 17:00:16 +0000 (17:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/debug.h
src/common/appbase.cpp

index e783d5efacc3225d6efea4b91ee7db5e856d5cb3..cc217a77b3e92856df248cbf1fdab41057103aa4 100644 (file)
 #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
 
 /*  ---------------------------------------------------------------------------- */
 
     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);
 
     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 */
     else                                                                      \
         do                                                                    \
         {                                                                     \
-            wxOnAssert(__TFILE__, __LINE__, __TFUNC__, _T(#cond), msg);       \
+            wxOnAssert(__TFILE__, __LINE__, __FUNCTION__, _T(#cond), msg);       \
             op;                                                               \
         } while ( 0 )
 
index c1bbddd32633e57db24d9ee8889b339b777351bd..5a6a35127ef3c810fed2c9e48d24e519116a38be 100644 (file)
@@ -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;