Mercurial > pidgin
changeset 15985:6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
is turned on in the UI. This allows the core to avoid having a
call to g_strdup_vprintf() for each debug message when debugging is
turned off. The change should provide a very very small speed
improvement, since we tend to print a lot of debug output.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 03 Apr 2007 06:26:20 +0000 |
parents | 20c0ab6ea008 |
children | 0315b014741b |
files | finch/gntdebug.c libpurple/debug.c libpurple/debug.h pidgin/gtkdebug.c |
diffstat | 4 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/finch/gntdebug.c Mon Apr 02 00:38:21 2007 +0000 +++ b/finch/gntdebug.c Tue Apr 03 06:26:20 2007 +0000 @@ -106,9 +106,16 @@ } } +static gboolean +finch_debug_is_enabled(PurpleDebugLevel level, const char *category) +{ + return debug.window && !debug.paused; +} + static PurpleDebugUiOps uiops = { finch_debug_print, + finch_debug_is_enabled }; PurpleDebugUiOps *finch_debug_get_ui_ops()
--- a/libpurple/debug.c Mon Apr 02 00:38:21 2007 +0000 +++ b/libpurple/debug.c Tue Apr 03 06:26:20 2007 +0000 @@ -53,7 +53,8 @@ ops = purple_debug_get_ui_ops(); - if (!debug_enabled && ((ops == NULL) || (ops->print == NULL))) + if (!debug_enabled && ((ops == NULL) || (ops->print == NULL) || + (ops->is_enabled && !ops->is_enabled(level, category)))) return; arg_s = g_strdup_vprintf(format, args);
--- a/libpurple/debug.h Mon Apr 02 00:38:21 2007 +0000 +++ b/libpurple/debug.h Tue Apr 03 06:26:20 2007 +0000 @@ -49,6 +49,8 @@ { void (*print)(PurpleDebugLevel level, const char *category, const char *arg_s); + gboolean (*is_enabled)(PurpleDebugLevel level, + const char *category); } PurpleDebugUiOps; #ifdef __cplusplus
--- a/pidgin/gtkdebug.c Mon Apr 02 00:38:21 2007 +0000 +++ b/pidgin/gtkdebug.c Tue Apr 03 06:26:20 2007 +0000 @@ -1104,9 +1104,17 @@ g_free(s); } +static gboolean +pidgin_debug_is_enabled(PurpleDebugLevel level, const char *category) +{ + return (purple_prefs_get_bool("/purple/gtk/debug/enabled") && + debug_win != NULL); +} + static PurpleDebugUiOps ops = { pidgin_debug_print, + pidgin_debug_is_enabled }; PurpleDebugUiOps *