// generic log function
void wxLogGeneric(wxLogLevel level, const wxChar *szFormat, ...)
{
-<<<<<<< log.cpp
- if ( wxLog::GetActiveTarget() != NULL ) {
- wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
-
- va_list argptr;
- va_start(argptr, szFormat);
- wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
- va_end(argptr);
-=======
if ( IsLoggingEnabled() ) {
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
->>>>>>> 1.93.2.3
-<<<<<<< log.cpp
- wxLog::OnLog(level, s_szBuf, time(NULL));
- }
-=======
va_list argptr;
va_start(argptr, szFormat);
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
wxLog::OnLog(level, s_szBuf, time(NULL));
}
->>>>>>> 1.93.2.3
}
#define IMPLEMENT_LOG_FUNCTION(level) \
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);
ms_aTraceMasks.Remove((size_t)index);
}
+void wxLog::ClearTraceMasks()
+{
+ ms_aTraceMasks.Clear();
+}
+
void wxLog::TimeStamp(wxString *str)
{
if ( ms_timestamp )
// ----------------------------------------------------------------------------
#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;
}
{
wxString str;
TimeStamp(&str);
- (*m_ostr) << str << wxConvertWX2MB(szString) << endl;
+ (*m_ostr) << str << wxConvertWX2MB(szString) << wxSTD endl;
}
#endif // wxUSE_STD_IOSTREAM
#ifdef __WXDEBUG__
+// wxASSERT() helper
+bool wxAssertIsEqual(int x, int y)
+{
+ return x == y;
+}
+
// break into the debugger
-void Trap()
+void wxTrap()
{
#ifdef __WXMSW__
DebugBreak();
if ( s_bInAssert ) {
// He-e-e-e-elp!! we're trapped in endless loop
- Trap();
+ wxTrap();
s_bInAssert = FALSE;
// 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."));
switch ( ::MessageBox(NULL, szBuf, _T("Debug"),
MB_YESNOCANCEL | MB_ICONSTOP ) ) {
case IDYES:
- Trap();
+ wxTrap();
break;
case IDCANCEL:
switch ( wxMessageBox(szBuf, wxT("Debug"),
wxYES_NO | wxCANCEL | wxICON_STOP ) ) {
case wxYES:
- Trap();
+ wxTrap();
break;
case wxCANCEL:
#endif // GUI or MSW
#else // !GUI
- Trap();
+ wxTrap();
#endif // GUI/!GUI
}