]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't pass logs at unknown levels to wxLog::DoLogRecord() from wxLogGui.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 26 Jan 2010 12:33:34 +0000 (12:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 26 Jan 2010 12:33:34 +0000 (12:33 +0000)
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

src/generic/logg.cpp

index be7d63af69f483739553e47b634050db3eba6e60..e769bfb2bdf2363955de42ce9bd0ac4f1a8b7f3b 100644 (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;
     }
 }