commit dea802d0abee36c3985b2d3a9da90fa662e0186c
parent 3a8a9a3168989c69ce55528f17cbfe435abe3195
Author: Oliver Lowe <o@olowe.co>
Date: Wed, 13 Aug 2025 17:27:28 +1000
Drop home-grown profiling
Now that we've got zig we can profile using its built-in testing
Diffstat:
18 files changed, 0 insertions(+), 215 deletions(-)
diff --git a/configure.ac b/configure.ac
@@ -1,4 +1,3 @@
-
AC_PREREQ([2.69])
m4_define([claws_VERSION],
@@ -221,10 +220,6 @@ AC_ARG_ENABLE(more-addressbook-debug,
[ --enable-more-addressbook-debug Build with additional addressbook debug calls],
[enable_more_addressbook_debug=$enableval], [enable_more_addressbook_debug=no])
-AC_ARG_ENABLE(timing-debug,
- [ --enable-timing-debug Build with timing debug calls],
- [enable_timing_debug=$enableval], [enable_timing_debug=no])
-
manualdir='${docdir}/manual'
AC_ARG_WITH(manualdir,
[ --with-manualdir=DIR Manual directory],
@@ -571,15 +566,6 @@ else
AC_MSG_RESULT(no)
fi
-AC_MSG_CHECKING([whether to build with timing debug calls])
-if test x$enable_timing_debug = xyes; then
- more_debug_output_modules="$more_debug_output_modules timing"
- AC_MSG_RESULT(yes)
- AC_DEFINE(DEBUG_TIMING, 1, [Define if you want timing debug calls])
-else
- AC_MSG_RESULT(no)
-fi
-
dnl expat **********************************************************************
PKG_CHECK_MODULES(EXPAT, expat, HAVE_EXPAT=yes, HAVE_EXPAT=no)
diff --git a/src/advsearch.c b/src/advsearch.c
@@ -30,7 +30,6 @@
#include "matcher_parser.h"
#include "utils.h"
#include "prefs_common.h"
-#include "timing.h"
struct _AdvancedSearch {
struct {
@@ -523,9 +522,7 @@ static gboolean search_impl(MsgInfoList **messages, AdvancedSearch* search,
FolderItem* folderItem, gboolean recursive)
{
if (recursive) {
- START_TIMING("recursive");
if (!search_impl(messages, search, folderItem, FALSE)) {
- END_TIMING();
return FALSE;
}
if (folderItem->node->children != NULL && !search->search_aborted) {
@@ -534,22 +531,18 @@ static gboolean search_impl(MsgInfoList **messages, AdvancedSearch* search,
FolderItem *cur = FOLDER_ITEM(node->data);
debug_print("in: %s\n", cur->path);
if (!search_impl(messages, search, cur, TRUE)) {
- END_TIMING();
return FALSE;
}
}
}
- END_TIMING();
} else if (!folderItem->no_select) {
MsgNumberList *msgnums = NULL;
MsgNumberList *cur;
MsgInfoList *msgs = NULL;
gboolean can_search_on_server = folderItem->folder->klass->supports_server_search;
- START_TIMING("folder");
if (!search_filter_folder(&msgnums, search, folderItem,
can_search_on_server)) {
g_slist_free(msgnums);
- END_TIMING();
return FALSE;
}
@@ -569,7 +562,6 @@ static gboolean search_impl(MsgInfoList **messages, AdvancedSearch* search,
}
g_slist_free(msgnums);
- END_TIMING();
}
return TRUE;
diff --git a/src/common/Makefile.am b/src/common/Makefile.am
@@ -68,7 +68,6 @@ clawscommoninclude_HEADERS = $(arch_headers) \
claws.h \
tags.h \
template.h \
- timing.h \
utils.h \
uuencode.h \
version.h \
diff --git a/src/common/file-utils.c b/src/common/file-utils.c
@@ -32,7 +32,6 @@
#include "defs.h"
#include "codeconv.h"
-#include "timing.h"
#include "file-utils.h"
gboolean prefs_common_get_flush_metadata(void);
diff --git a/src/common/timing.h b/src/common/timing.h
@@ -1,105 +0,0 @@
-/*
- * Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 2005-2025 the Claws Mail team and Colin Leroy
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-/*
- * This is a (quite naive) timer, to help determine the speed of various
- * functions of Claws. By default START_TIMING() and END_TIMING() are NOPS,
- * so that nothing gets printed out. If you change the #if, however, you'll
- * be able to get functions timing information. As the implementation is
- * naive, START_TIMING("message"); must be present just at the end of a
- * declaration block (or compilation would fail with gcc 2.x), and the
- * END_TIMING() call must be in the same scope.
- */
-#ifndef __TIMING_H__
-#define __TIMING_H__
-
-#include <glib.h>
-#include <sys/time.h>
-#ifdef HAVE_CONFIG_H
-#include "claws-features.h"
-#endif
-
-#include "utils.h"
-# define mytimersub(a, b, result) \
- do { \
- (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
- (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
- if ((result)->tv_usec < 0) { \
- --(result)->tv_sec; \
- (result)->tv_usec += 1000000; \
- } \
- } while (0)
-
-#ifndef DEBUG_TIMING
-#define START_TIMING(str) do {} while(0);
-#define END_TIMING() do {} while(0);
-#else
-
-#ifdef G_OS_WIN32
-
-#include <windows.h>
-
-/* no {} by purpose */
-#define START_TIMING(str) \
- LARGE_INTEGER frequency; \
- LARGE_INTEGER start; \
- LARGE_INTEGER end; \
- LARGE_INTEGER diff; \
- const char *timing_name=str; \
- QueryPerformanceFrequency (&frequency); \
- QueryPerformanceCounter (&start);
-
-#define END_TIMING() \
- QueryPerformanceCounter (&end); \
- diff.QuadPart = \
- (end.QuadPart - start.QuadPart) \
- * 1000000/frequency.QuadPart; \
- debug_print("TIMING %s: %ds%03dms\n", timing_name, \
- (unsigned int) (diff.QuadPart / 1000000), \
- (unsigned int) ((diff.QuadPart / 1000) % 1000));
-
-#else
-/* no {} by purpose */
-#define START_TIMING(str) \
- struct timeval start; \
- struct timeval end; \
- struct timeval diff; \
- const char *timing_name=str; \
- gettimeofday(&start, NULL);
-
-#ifdef __GLIBC__
-#define END_TIMING() \
- gettimeofday(&end, NULL); \
- mytimersub(&end, &start, &diff); \
- debug_print("TIMING %s %s: %ds%03dms\n", \
- __FUNCTION__, \
- timing_name, (unsigned int)diff.tv_sec, \
- (unsigned int)diff.tv_usec/1000);
-#else
-#define END_TIMING() \
- gettimeofday(&end, NULL); \
- mytimersub(&end, &start, &diff); \
- debug_print("TIMING %s: %ds%03dms\n", \
- timing_name, (unsigned int)diff.tv_sec, \
- (unsigned int)diff.tv_usec/1000);
-#endif
-
-#endif
-#endif
-#endif
diff --git a/src/common/utils.c b/src/common/utils.c
@@ -68,7 +68,6 @@
#include "utils.h"
#include "socket.h"
#include "codeconv.h"
-#include "timing.h"
#include "file-utils.h"
#include "fence.h"
diff --git a/src/compose.c b/src/compose.c
@@ -98,7 +98,6 @@
#include "combobox.h"
#include "hooks.h"
#include "privacy.h"
-#include "timing.h"
#include "autofaces.h"
#include "spell_entry.h"
#include "headers.h"
@@ -1497,7 +1496,6 @@ static Compose *compose_generic_reply(MsgInfo *msginfo,
gboolean quote = FALSE;
const gchar *body_fmt = NULL;
gchar *s_system = NULL;
- START_TIMING("");
cm_return_val_if_fail(msginfo != NULL, NULL);
cm_return_val_if_fail(msginfo->folder != NULL, NULL);
@@ -1659,7 +1657,6 @@ static Compose *compose_generic_reply(MsgInfo *msginfo,
compose_destroy(compose);
return NULL;
}
- END_TIMING();
return compose;
}
diff --git a/src/folder.c b/src/folder.c
@@ -53,7 +53,6 @@
#include "partial_download.h"
#include "statusbar.h"
#include "gtkutils.h"
-#include "timing.h"
#include "compose.h"
#include "main.h"
#include "msgcache.h"
@@ -2044,7 +2043,6 @@ static void folder_item_process_open (FolderItem *item,
gint folder_item_open(FolderItem *item)
{
- START_TIMING("");
if (item->no_select)
return -1;
@@ -2057,7 +2055,6 @@ gint folder_item_open(FolderItem *item)
folder_item_process_open (item, NULL, NULL, NULL);
item->opened = TRUE;
- END_TIMING();
return 0;
}
@@ -2649,7 +2646,6 @@ static void folder_item_clean_local_files(FolderItem *item, gint days)
static void folder_item_read_cache(FolderItem *item)
{
gchar *cache_file, *mark_file, *tags_file;
- START_TIMING("");
cm_return_if_fail(item != NULL);
if (item->path != NULL) {
@@ -2726,7 +2722,6 @@ static void folder_item_read_cache(FolderItem *item)
item->tags_dirty = TRUE;
}
- END_TIMING();
folder_clean_cache_memory(item);
}
diff --git a/src/folderview.c b/src/folderview.c
@@ -56,7 +56,6 @@
#include "filtering.h"
#include "quicksearch.h"
#include "manual.h"
-#include "timing.h"
#include "log.h"
#include "gtkcmctree.h"
@@ -2249,7 +2248,6 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
FolderItem *item;
int res = 0;
GtkCMCTreeNode *old_opened = folderview->opened;
- START_TIMING("");
folderview->selected = row;
display = gdk_display_get_default();
@@ -2260,13 +2258,11 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
folderview->opened);
if (folderview->opened == row) {
folderview->open_folder = FALSE;
- END_TIMING();
return;
}
item = gtk_cmctree_node_get_row_data(ctree, row);
if (!item) {
- END_TIMING();
folderview->open_folder = FALSE;
return;
}
@@ -2277,12 +2273,10 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
gtk_cmctree_select(ctree, folderview->opened);
}
folderview->open_folder = FALSE;
- END_TIMING();
return;
}
if (!folderview->open_folder) {
- END_TIMING();
return;
}
@@ -2338,7 +2332,6 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
folderview->open_folder = FALSE;
can_select = TRUE;
- END_TIMING();
return;
} else if (res == -2 && item->no_select == FALSE) {
PostponedSelectData *data = g_new0(PostponedSelectData, 1);
@@ -2353,7 +2346,6 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
if (folderview->postpone_select_id != 0)
g_source_remove(folderview->postpone_select_id);
folderview->postpone_select_id = g_timeout_add(500, postpone_select, data);
- END_TIMING();
return;
}
@@ -2380,7 +2372,6 @@ static void folderview_selected(GtkCMCTree *ctree, GtkCMCTreeNode *row,
folderview->open_folder = FALSE;
can_select = TRUE;
- END_TIMING();
}
static void folderview_tree_expanded(GtkCMCTree *ctree, GtkCMCTreeNode *node,
diff --git a/src/main.c b/src/main.c
@@ -137,7 +137,6 @@
#include "version.h"
-#include "timing.h"
gchar *prog_version;
@@ -566,7 +565,6 @@ int main(int argc, char *argv[])
gboolean mainwin_shown = FALSE;
gint ret;
- START_TIMING("startup");
sc_starting = TRUE;
@@ -981,7 +979,6 @@ int main(int argc, char *argv[])
lock_socket_input_cb,
mainwin, TRUE);
- END_TIMING();
gtk_main();
utils_free_regex();
diff --git a/src/mh.c b/src/mh.c
@@ -40,7 +40,6 @@
#include "codeconv.h"
#include "statusbar.h"
#include "gtkutils.h"
-#include "timing.h"
#include "msgcache.h"
#include "file-utils.h"
#include "prefs_common.h"
diff --git a/src/mimeview.c b/src/mimeview.c
@@ -47,7 +47,6 @@
#include "stock_pixmap.h"
#include "gtk/gtkvscrollbutton.h"
#include "gtk/logwindow.h"
-#include "timing.h"
#include "manage_window.h"
#include "privacy.h"
#include "file-utils.h"
diff --git a/src/msgcache.c b/src/msgcache.c
@@ -38,7 +38,6 @@
#include "utils.h"
#include "procmsg.h"
#include "codeconv.h"
-#include "timing.h"
#include "tags.h"
#include "prefs_common.h"
#include "file-utils.h"
@@ -256,14 +255,12 @@ static void msgcache_get_msg_list_func(gpointer key, gpointer value, gpointer us
MsgInfoList *msgcache_get_msg_list(MsgCache *cache)
{
MsgInfoList *msg_list = NULL;
- START_TIMING("");
cm_return_val_if_fail(cache != NULL, NULL);
g_hash_table_foreach((GHashTable *)cache->msgnum_table, msgcache_get_msg_list_func, (gpointer)&msg_list);
cache->last_access = time(NULL);
msg_list = g_slist_reverse(msg_list);
- END_TIMING();
return msg_list;
}
@@ -1059,7 +1056,6 @@ gint msgcache_write(const gchar *cache_file, const gchar *mark_file, const gchar
gchar *new_cache = NULL, *new_mark = NULL, *new_tags = NULL;
int w_err = 0, wrote = 0;
- START_TIMING("");
cm_return_val_if_fail(cache != NULL, -1);
if (cache_file)
@@ -1186,7 +1182,6 @@ gint msgcache_write(const gchar *cache_file, const gchar *mark_file, const gchar
g_free(new_mark);
g_free(new_tags);
debug_print("msgcache_write() done.\n");
- END_TIMING();
return 0;
}
diff --git a/src/password.c b/src/password.c
@@ -32,7 +32,6 @@
#include "common/passcrypt.h"
#include "common/pkcs5_pbkdf2.h"
-#include "common/timing.h"
#include "common/utils.h"
#include "account.h"
#include "alertpanel.h"
@@ -85,10 +84,8 @@ static guchar *_make_key_deriv(const gchar *passphrase, guint rounds,
salt = g_base64_decode(saltpref, &saltlen);
kd = g_malloc0(length);
- START_TIMING("PBKDF2");
ret = pkcs5_pbkdf2(passphrase, strlen(passphrase), salt, saltlen,
kd, length, rounds);
- END_TIMING();
g_free(salt);
diff --git a/src/procmime.c b/src/procmime.c
@@ -49,7 +49,6 @@
#include "prefs_common.h"
#include "prefs_gtk.h"
#include "alertpanel.h"
-#include "timing.h"
#include "privacy.h"
#include "account.h"
#include "file-utils.h"
diff --git a/src/procmsg.c b/src/procmsg.c
@@ -48,7 +48,6 @@
#include "summaryview.h"
#include "log.h"
#include "tags.h"
-#include "timing.h"
#include "inc.h"
#include "privacy.h"
#include "file-utils.h"
@@ -214,7 +213,6 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
MsgInfo *msginfo;
const gchar *msgid;
GSList *reflist;
- START_TIMING("");
root = g_node_new(NULL);
msgid_table = g_hash_table_new(g_str_hash, g_str_equal);
@@ -275,7 +273,6 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
}
if (prefs_common.thread_by_subject) {
- START_TIMING("thread by subject");
for (node = root->children; node && node != NULL;) {
next = node->next;
msginfo = (MsgInfo *) node->data;
@@ -299,7 +296,6 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
node = next;
}
- END_TIMING();
}
if (prefs_common.thread_by_subject)
@@ -309,7 +305,6 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
}
g_hash_table_destroy(msgid_table);
- END_TIMING();
return root;
}
diff --git a/src/summaryview.c b/src/summaryview.c
@@ -72,7 +72,6 @@
#include "quicksearch.h"
#include "partial_download.h"
#include "tags.h"
-#include "timing.h"
#include "log.h"
#include "edittags.h"
#include "manual.h"
@@ -1136,7 +1135,6 @@ static void summaryview_quicksearch_recurse(SummaryView *summaryview)
|| summaryview->folder_item == NULL) {
return;
}
- START_TIMING("");
main_window_cursor_wait(summaryview->mainwin);
summaryview_reset_recursive_folder_match(summaryview);
@@ -1145,14 +1143,12 @@ static void summaryview_quicksearch_recurse(SummaryView *summaryview)
summaryview_quicksearch_search_subfolders(summaryview, summaryview->folder_item);
main_window_cursor_normal(summaryview->mainwin);
- END_TIMING();
}
static gboolean summary_check_consistency(FolderItem *item, GSList *mlist)
{
int u = 0, n = 0, m = 0, t = 0, r = 0, f = 0, l = 0, i = 0, w = 0;
GSList *cur;
- START_TIMING("");
for(cur = mlist ; cur != NULL && cur->data != NULL ; cur = g_slist_next(cur)) {
MsgInfo * msginfo = (MsgInfo *) cur->data;
t++;
@@ -1186,10 +1182,8 @@ static gboolean summary_check_consistency(FolderItem *item, GSList *mlist)
|| item->unreadmarked_msgs < 0) {
debug_print("Inconsistency\n");
folder_item_scan_full(item, FALSE);
- END_TIMING();
return FALSE;
}
- END_TIMING();
return TRUE;
}
@@ -1224,7 +1218,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
if (!summaryview->mainwin)
return FALSE;
- START_TIMING("");
summary_switch_from_to(summaryview, item);
inc_lock();
@@ -1288,7 +1281,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
} else {
summary_unlock(summaryview);
inc_unlock();
- END_TIMING();
return FALSE;
}
if (changed || !quicksearch_has_sat_predicate(summaryview->quicksearch))
@@ -1315,7 +1307,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
summary_thaw(summaryview);
summary_unlock(summaryview);
inc_unlock();
- END_TIMING();
return TRUE;
}
g_free(buf);
@@ -1345,7 +1336,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
procmsg_msg_list_free(mlist);
mlist = NULL;
- START_TIMING("quicksearch");
statusbar_print_all(_("Searching in %s... \n"),
summaryview->folder_item->path ?
@@ -1368,10 +1358,8 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
summary_unlock(summaryview);
inc_unlock();
summary_show(summaryview, summaryview->folder_item, FALSE);
- END_TIMING();
return FALSE;
}
- END_TIMING();
}
if ((summaryview->folder_item->hide_read_msgs
@@ -1427,7 +1415,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
}
if (!hidden_removed) {
- START_TIMING("removing hidden");
not_killed = NULL;
for(cur = mlist ; cur != NULL && cur->data != NULL ; cur = g_slist_next(cur)) {
MsgInfo * msginfo = (MsgInfo *) cur->data;
@@ -1439,7 +1426,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
}
g_slist_free(mlist);
mlist = not_killed;
- END_TIMING();
}
STATUSBAR_POP(summaryview->mainwin);
@@ -1616,7 +1602,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, gboolean avoid
main_window_cursor_normal(summaryview->mainwin);
summary_unlock(summaryview);
inc_unlock();
- END_TIMING();
return TRUE;
}
@@ -2944,7 +2929,6 @@ void summary_sort(SummaryView *summaryview,
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
GtkCMCList *clist = GTK_CMCLIST(summaryview->ctree);
GtkCMCListCompareFunc cmp_func = NULL;
- START_TIMING("");
g_signal_handlers_block_by_func(G_OBJECT(summaryview->ctree),
G_CALLBACK(summary_tree_expanded), summaryview);
summary_freeze(summaryview);
@@ -3033,7 +3017,6 @@ unlock:
summary_thaw(summaryview);
g_signal_handlers_unblock_by_func(G_OBJECT(summaryview->ctree),
G_CALLBACK(summary_tree_expanded), summaryview);
- END_TIMING();
}
static gboolean summary_update_thread_age(GNode *node, gpointer data)
@@ -3177,7 +3160,6 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
gboolean vert_layout = (prefs_common.layout_mode == VERTICAL_LAYOUT);
gboolean small_layout = (prefs_common.layout_mode == SMALL_LAYOUT);
- START_TIMING("");
if (!mlist) return;
@@ -3206,7 +3188,6 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
if (summaryview->threaded) {
GNode *root, *gnode;
- START_TIMING("threaded");
root = procmsg_get_thread_tree(mlist);
@@ -3224,10 +3205,8 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
g_node_destroy(root);
- END_TIMING();
} else {
gchar *text[N_SUMMARY_COLS];
- START_TIMING("unthreaded");
cur = mlist;
for (; mlist != NULL; mlist = mlist->next) {
msginfo = (MsgInfo *)mlist->data;
@@ -3254,7 +3233,6 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
node);
}
mlist = cur;
- END_TIMING();
}
if (prefs_common.enable_hscrollbar &&
@@ -3286,19 +3264,16 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
node = GTK_CMCTREE_NODE(GTK_CMCLIST(ctree)->row_list);
if (prefs_common.bold_unread || prefs_common.bold_marked) {
- START_TIMING("bold_unread/bold_marked");
while (node) {
GtkCMCTreeNode *next = GTK_CMCTREE_NODE_NEXT(node);
if (GTK_CMCTREE_ROW(node)->children)
summary_set_row_marks(summaryview, node);
node = next;
}
- END_TIMING();
}
g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
G_CALLBACK(summary_tree_expanded), summaryview);
- END_TIMING();
}
static gchar *summary_complete_address(const gchar *addr)
@@ -3662,7 +3637,6 @@ static void summary_display_msg_full(SummaryView *summaryview,
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
MsgInfo *msginfo;
gint val;
- START_TIMING("");
if (!new_window) {
if (summaryview->displayed == row &&
messageview_is_visible(summaryview->messageview))
@@ -3683,7 +3657,6 @@ static void summary_display_msg_full(SummaryView *summaryview,
if (!msginfo) {
debug_print("NULL msginfo\n");
summary_unlock(summaryview);
- END_TIMING();
return;
}
@@ -3747,7 +3720,6 @@ static void summary_display_msg_full(SummaryView *summaryview,
messageview_set_menu_sensitive(summaryview->messageview);
summary_unlock(summaryview);
- END_TIMING();
}
void summary_display_msg_selected(SummaryView *summaryview,
@@ -5525,7 +5497,6 @@ static void summary_thread_init(SummaryView *summaryview)
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
GtkCMCTreeNode *node = GTK_CMCTREE_NODE(GTK_CMCLIST(ctree)->row_list);
GtkCMCTreeNode *next;
- START_TIMING("");
if (!summaryview->thread_collapsed) {
g_signal_handlers_block_by_func(G_OBJECT(ctree),
G_CALLBACK(summary_tree_expanded), summaryview);
@@ -5538,7 +5509,6 @@ static void summary_thread_init(SummaryView *summaryview)
g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
G_CALLBACK(summary_tree_expanded), summaryview);
}
- END_TIMING();
}
static void summary_unthread_for_exec(SummaryView *summaryview)
@@ -7317,7 +7287,6 @@ static void summary_sort_by_column_click(SummaryView *summaryview,
}
GtkCMCTreeNode *node = NULL;
- START_TIMING("");
if (summaryview->sort_key == sort_key)
summary_sort(summaryview, sort_key,
summaryview->sort_type == SORT_ASCENDING
@@ -7337,7 +7306,6 @@ static void summary_sort_by_column_click(SummaryView *summaryview,
}
}
summary_thaw(summaryview);
- END_TIMING();
}
static void summary_mark_clicked(GtkWidget *button, SummaryView *summaryview)
diff --git a/src/textview.c b/src/textview.c
@@ -58,7 +58,6 @@
#include "image_viewer.h"
#include "filesel.h"
#include "inputdialog.h"
-#include "timing.h"
#include "tags.h"
#include "manage_window.h"
#include "folder_item_prefs.h"
@@ -605,7 +604,6 @@ void textview_reflect_prefs(TextView *textview)
void textview_show_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp)
{
- START_TIMING("");
cm_return_if_fail(mimeinfo != NULL);
cm_return_if_fail(fp != NULL);
@@ -628,7 +626,6 @@ void textview_show_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp)
textview->stop_loading = FALSE;
textview_set_position(textview, 0);
- END_TIMING();
}
static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
@@ -643,7 +640,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
gchar *content_type;
gint charcount;
- START_TIMING("");
cm_return_if_fail(mimeinfo != NULL);
text = GTK_TEXT_VIEW(textview->text);
@@ -655,7 +651,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
return;
}
if (mimeinfo->type == MIMETYPE_MULTIPART) {
- END_TIMING();
return;
}
@@ -669,13 +664,11 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
fp = g_fopen(mimeinfo->data.filename, "rb");
if (!fp) {
FILE_OP_ERROR(mimeinfo->data.filename, "g_fopen");
- END_TIMING();
return;
}
if (fseek(fp, mimeinfo->offset, SEEK_SET) < 0) {
FILE_OP_ERROR(mimeinfo->data.filename, "fseek");
fclose(fp);
- END_TIMING();
return;
}
headers = textview_scan_header(textview, fp);
@@ -690,7 +683,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
procheader_header_array_destroy(headers);
}
fclose(fp);
- END_TIMING();
return;
}
@@ -721,18 +713,15 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
GError *error = NULL;
ClickableText *uri;
- START_TIMING("inserting image");
pixbuf = procmime_get_part_as_pixbuf(mimeinfo, &error);
if (error != NULL) {
g_warning("can't load the image: %s", error->message);
g_error_free(error);
- END_TIMING();
return;
}
if (textview->stop_loading) {
- END_TIMING();
return;
}
@@ -742,7 +731,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
allocation.height);
if (textview->stop_loading) {
- END_TIMING();
return;
}
@@ -768,7 +756,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
gtk_text_buffer_apply_tag_by_name(buffer, "link",
&start_iter, &iter);
- END_TIMING();
GTK_EVENTS_FLUSH();
}
} else if (mimeinfo->type == MIMETYPE_TEXT) {
@@ -787,21 +774,18 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
gtk_text_buffer_create_mark(buffer, "body_end", &iter, TRUE);
}
}
- END_TIMING();
}
static void recursive_add_parts(TextView *textview, GNode *node)
{
GNode * iter;
MimeInfo *mimeinfo;
- START_TIMING("");
mimeinfo = (MimeInfo *) node->data;
textview_add_part(textview, mimeinfo);
if ((mimeinfo->type != MIMETYPE_MULTIPART) &&
(mimeinfo->type != MIMETYPE_MESSAGE)) {
- END_TIMING();
return;
}
if (g_ascii_strcasecmp(mimeinfo->subtype, "alternative") == 0) {
@@ -847,7 +831,6 @@ static void recursive_add_parts(TextView *textview, GNode *node)
recursive_add_parts(textview, iter);
}
}
- END_TIMING();
}
static void textview_add_parts(TextView *textview, MimeInfo *mimeinfo)