Don't pass logs at unknown levels to wxLog::DoLogRecord() from wxLogGui.

This results in an assert in DoLogText() which is not implemented in the base
class but ends up being called as DoLogTextAtLevel() doesn't know how to
handle non-standard log levels otherwise. This assert happened if you simply
called wxLogMessage(wxLOG_User, ...) in the program.

Just ignore messages at unknown log levels instead in wxLogGui, by definition
it can't handle them anyhow.

See also r63167.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-01-26 12:33:34 +00:00
parent c9980eb871
commit 6900a89752

View File

@ -417,10 +417,25 @@ void wxLogGui::DoLogRecord(wxLogLevel level,
m_bHasMessages = true;
break;
default:
// let the base class deal with debug/trace messages as well as any
// custom levels
case wxLOG_Debug:
case wxLOG_Trace:
// let the base class deal with debug/trace messages
wxLog::DoLogRecord(level, msg, info);
break;
case wxLOG_FatalError:
case wxLOG_Max:
// fatal errors are shown immediately and terminate the program so
// we should never see them here
wxFAIL_MSG("unexpected log level");
break;
case wxLOG_Progress:
case wxLOG_User:
// just ignore those: passing them to the base class would result
// in asserts from DoLogText() because DoLogTextAtLevel() would
// call it as it doesn't know how to handle these levels otherwise
break;
}
}