first round of debug/release merge: introduce wxDEBUG_LEVEL, for now defined as 1 if __WXDEBUG__ is defined, i.e. no real changes; don't use __WXDEBUG__ in the headers to keep debug and release builds ABI-compatible; add functions to customize or disable asserts handling

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-03-21 23:36:37 +00:00
parent b822bdc032
commit 657a8a3598
43 changed files with 659 additions and 568 deletions

View File

@@ -115,7 +115,8 @@ bool wxApp::DoIdle()
id_save = m_idleSourceId;
m_idleSourceId = 0;
wx_add_idle_hooks();
#ifdef __WXDEBUG__
#if wxDEBUG_LEVEL
// don't generate the idle events while the assert modal dialog is shown,
// this matches the behavior of wxMSW
if (m_isInAssert)
@@ -181,9 +182,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler)
wxApp::wxApp()
{
#ifdef __WXDEBUG__
m_isInAssert = false;
#endif // __WXDEBUG__
#if wxUSE_THREADS
m_idleMutex = NULL;
#endif
@@ -498,25 +498,30 @@ bool wxApp::EventsPending()
return gtk_events_pending() != 0;
}
#ifdef __WXDEBUG__
void wxApp::OnAssertFailure(const wxChar *file,
int line,
const wxChar* func,
const wxChar* cond,
const wxChar *msg)
{
// there is no need to do anything if asserts are disabled in this build
// anyhow
#if wxDEBUG_LEVEL
// block wx idle events while assert dialog is showing
m_isInAssert = true;
wxAppBase::OnAssertFailure(file, line, func, cond, msg);
m_isInAssert = false;
#else // !wxDEBUG_LEVEL
wxUnusedVar(file);
wxUnusedVar(line);
wxUnusedVar(func);
wxUnusedVar(cond);
wxUnusedVar(msg);
#endif // wxDEBUG_LEVEL/!wxDEBUG_LEVEL
}
#endif // __WXDEBUG__
#if wxUSE_THREADS
void wxGUIAppTraits::MutexGuiEnter()
{