X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c21efe30131c78c25763446e0754e2a0b54dc30..daa616fca06ce77df132d31eda6d1f829b449aad:/src/common/log.cpp?ds=sidebyside diff --git a/src/common/log.cpp b/src/common/log.cpp index 1ec43bfa0a..ffeeef2daa 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -323,6 +323,16 @@ wxLog *wxLog::SetActiveTarget(wxLog *pLogger) return pOldLogger; } +void wxLog::DontCreateOnDemand() +{ + ms_bAutoCreate = FALSE; + + // this is usually called at the end of the program and we assume that it + // is *always* called at the end - so we free memory here to avoid false + // memory leak reports from wxWin memory tracking code + ClearTraceMasks(); +} + void wxLog::RemoveTraceMask(const wxString& str) { int index = ms_aTraceMasks.Index(str); @@ -330,6 +340,11 @@ void wxLog::RemoveTraceMask(const wxString& str) ms_aTraceMasks.Remove((size_t)index); } +void wxLog::ClearTraceMasks() +{ + ms_aTraceMasks.Clear(); +} + void wxLog::TimeStamp(wxString *str) { if ( ms_timestamp ) @@ -541,10 +556,10 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) // ---------------------------------------------------------------------------- #if wxUSE_STD_IOSTREAM -wxLogStream::wxLogStream(ostream *ostr) +wxLogStream::wxLogStream(wxSTD ostream *ostr) { if ( ostr == NULL ) - m_ostr = &cerr; + m_ostr = &wxSTD cerr; else m_ostr = ostr; } @@ -553,7 +568,7 @@ void wxLogStream::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) { wxString str; TimeStamp(&str); - (*m_ostr) << str << wxConvertWX2MB(szString) << endl; + (*m_ostr) << str << wxConvertWX2MB(szString) << wxSTD endl; } #endif // wxUSE_STD_IOSTREAM @@ -690,8 +705,14 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) #ifdef __WXDEBUG__ +// wxASSERT() helper +bool wxAssertIsEqual(int x, int y) +{ + return x == y; +} + // break into the debugger -void Trap() +void wxTrap() { #ifdef __WXMSW__ DebugBreak(); @@ -717,7 +738,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) if ( s_bInAssert ) { // He-e-e-e-elp!! we're trapped in endless loop - Trap(); + wxTrap(); s_bInAssert = FALSE; @@ -751,7 +772,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) // send it to the normal log destination wxLogDebug(szBuf); -#if wxUSE_GUI || defined(__WXMSW__) +#if (wxUSE_GUI && wxUSE_MSGDLG) || defined(__WXMSW__) // this message is intentionally not translated - it is for // developpers only wxStrcat(szBuf, wxT("\nDo you want to stop the program?\nYou can also choose [Cancel] to suppress further warnings.")); @@ -762,7 +783,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) switch ( ::MessageBox(NULL, szBuf, _T("Debug"), MB_YESNOCANCEL | MB_ICONSTOP ) ) { case IDYES: - Trap(); + wxTrap(); break; case IDCANCEL: @@ -775,7 +796,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) switch ( wxMessageBox(szBuf, wxT("Debug"), wxYES_NO | wxCANCEL | wxICON_STOP ) ) { case wxYES: - Trap(); + wxTrap(); break; case wxCANCEL: @@ -787,7 +808,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) #endif // GUI or MSW #else // !GUI - Trap(); + wxTrap(); #endif // GUI/!GUI }