- Revise patch for GNOME bug #363695 to fix RH bug #245289 (frequent

hangs).
This commit is contained in:
Matthew Barnes 2007-06-27 16:04:46 +00:00
parent 42b96a2051
commit 48d450fcc3
2 changed files with 176 additions and 149 deletions

View File

@ -1,5 +1,5 @@
--- evolution-2.11.3/mail/mail-send-recv.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/mail-send-recv.c.kill-ethread 2007-06-17 23:26:00.000000000 -0400
+++ evolution-2.11.3/mail/mail-send-recv.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-send-recv.c 2007-06-27 11:23:50.000000000 -0400
@@ -764,23 +764,22 @@ receive_get_folder(CamelFilterDriver *d, @@ -764,23 +764,22 @@ receive_get_folder(CamelFilterDriver *d,
/* ********************************************************************** */ /* ********************************************************************** */
@ -82,8 +82,8 @@
} else { } else {
receive_done ("", data); receive_done ("", data);
} }
--- evolution-2.11.3/mail/mail-component.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/mail-component.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/mail-component.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-component.c 2007-06-27 11:23:50.000000000 -0400
@@ -1014,7 +1014,7 @@ impl_handleURI (PortableServer_Servant s @@ -1014,7 +1014,7 @@ impl_handleURI (PortableServer_Servant s
if (camel_url_get_param(url, "uid") != NULL) { if (camel_url_get_param(url, "uid") != NULL) {
char *curi = em_uri_to_camel(uri); char *curi = em_uri_to_camel(uri);
@ -93,8 +93,8 @@
g_free(curi); g_free(curi);
} else { } else {
g_warning("email uri's must include a uid parameter"); g_warning("email uri's must include a uid parameter");
--- evolution-2.11.3/mail/mail-ops.c.kill-ethread 2007-06-01 03:08:56.000000000 -0400 --- evolution-2.11.4/mail/mail-ops.c.kill-ethread 2007-06-01 03:08:56.000000000 -0400
+++ evolution-2.11.3/mail/mail-ops.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-ops.c 2007-06-27 11:23:50.000000000 -0400
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
/* used for both just filtering a folder + uid's, and for filtering a whole folder */ /* used for both just filtering a folder + uid's, and for filtering a whole folder */
/* used both for fetching mail, and for filtering mail */ /* used both for fetching mail, and for filtering mail */
@ -2224,8 +2224,8 @@
return id; return id;
} }
--- evolution-2.11.3/mail/em-folder-utils.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/em-folder-utils.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/em-folder-utils.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-folder-utils.c 2007-06-27 11:23:50.000000000 -0400
@@ -84,7 +84,7 @@ emfu_is_special_local_folder (const char @@ -84,7 +84,7 @@ emfu_is_special_local_folder (const char
} }
@ -2453,8 +2453,8 @@
return id; return id;
} }
--- evolution-2.11.3/mail/importers/elm-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400 --- evolution-2.11.4/mail/importers/elm-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
+++ evolution-2.11.3/mail/importers/elm-importer.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/importers/elm-importer.c 2007-06-27 11:23:50.000000000 -0400
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
#define d(x) x #define d(x) x
@ -2553,8 +2553,8 @@
return id; return id;
} }
--- evolution-2.11.3/mail/importers/mail-importer.c.kill-ethread 2007-06-03 11:08:07.000000000 -0400 --- evolution-2.11.4/mail/importers/mail-importer.c.kill-ethread 2007-06-03 11:08:07.000000000 -0400
+++ evolution-2.11.3/mail/importers/mail-importer.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/importers/mail-importer.c 2007-06-27 11:23:50.000000000 -0400
@@ -132,7 +132,7 @@ struct _BonoboObject *mail_importer_fact @@ -132,7 +132,7 @@ struct _BonoboObject *mail_importer_fact
} }
@ -2691,8 +2691,8 @@
} }
struct _import_folders_data { struct _import_folders_data {
--- evolution-2.11.3/mail/importers/pine-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400 --- evolution-2.11.4/mail/importers/pine-importer.c.kill-ethread 2007-04-18 06:17:29.000000000 -0400
+++ evolution-2.11.3/mail/importers/pine-importer.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/importers/pine-importer.c 2007-06-27 11:23:50.000000000 -0400
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
#define d(x) x #define d(x) x
@ -2792,8 +2792,8 @@
return id; return id;
} }
--- evolution-2.11.3/mail/em-utils.c.kill-ethread 2007-06-06 12:59:27.000000000 -0400 --- evolution-2.11.4/mail/em-utils.c.kill-ethread 2007-06-27 11:23:38.000000000 -0400
+++ evolution-2.11.3/mail/em-utils.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-utils.c 2007-06-27 11:23:50.000000000 -0400
@@ -1906,7 +1906,7 @@ em_utils_in_addressbook(CamelInternetAdd @@ -1906,7 +1906,7 @@ em_utils_in_addressbook(CamelInternetAdd
ESource *source = s->data; ESource *source = s->data;
GList *contacts; GList *contacts;
@ -2803,8 +2803,8 @@
d(printf(" checking '%s'\n", e_source_get_uri(source))); d(printf(" checking '%s'\n", e_source_get_uri(source)));
--- evolution-2.11.3/mail/mail-vfolder.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/mail-vfolder.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/mail-vfolder.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-vfolder.c 2007-06-27 11:23:50.000000000 -0400
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
*/ */
@ -3039,8 +3039,8 @@
from = em_uri_from_camel(cfrom); from = em_uri_from_camel(cfrom);
to = em_uri_from_camel(cto); to = em_uri_from_camel(cto);
--- evolution-2.11.3/mail/em-format-html.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/em-format-html.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/em-format-html.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-format-html.c 2007-06-27 11:23:50.000000000 -0400
@@ -165,7 +165,7 @@ efh_gtkhtml_destroy(GtkHTML *html, EMFor @@ -165,7 +165,7 @@ efh_gtkhtml_destroy(GtkHTML *html, EMFor
if (efh->priv->format_timeout_id != 0) { if (efh->priv->format_timeout_id != 0) {
g_source_remove(efh->priv->format_timeout_id); g_source_remove(efh->priv->format_timeout_id);
@ -3165,8 +3165,8 @@
m->format = (EMFormatHTML *)emf; m->format = (EMFormatHTML *)emf;
g_object_ref(emf); g_object_ref(emf);
m->format_source = emfsource; m->format_source = emfsource;
--- evolution-2.11.3/mail/em-folder-properties.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/em-folder-properties.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/em-folder-properties.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-folder-properties.c 2007-06-27 11:23:50.000000000 -0400
@@ -386,7 +386,7 @@ em_folder_properties_show(GtkWindow *par @@ -386,7 +386,7 @@ em_folder_properties_show(GtkWindow *par
} }
@ -3176,9 +3176,9 @@
else else
emfp_dialog_got_folder((char *)uri, folder, NULL); emfp_dialog_got_folder((char *)uri, folder, NULL);
} }
--- evolution-2.11.3/mail/em-folder-tree.c.kill-ethread 2007-06-04 01:52:58.000000000 -0400 --- evolution-2.11.4/mail/em-folder-tree.c.kill-ethread 2007-06-17 23:26:00.000000000 -0400
+++ evolution-2.11.3/mail/em-folder-tree.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-folder-tree.c 2007-06-27 11:23:50.000000000 -0400
@@ -834,7 +834,7 @@ fail: @@ -835,7 +835,7 @@ fail:
/* TODO: Merge the drop handling code/menu's into one spot using a popup target for details */ /* TODO: Merge the drop handling code/menu's into one spot using a popup target for details */
/* Drop handling */ /* Drop handling */
struct _DragDataReceivedAsync { struct _DragDataReceivedAsync {
@ -3187,7 +3187,7 @@
/* input data */ /* input data */
GdkDragContext *context; GdkDragContext *context;
@@ -859,17 +859,16 @@ emft_drop_folder(struct _DragDataReceive @@ -860,17 +860,16 @@ emft_drop_folder(struct _DragDataReceive
d(printf(" * Drop folder '%s' onto '%s'\n", m->selection->data, m->full_name)); d(printf(" * Drop folder '%s' onto '%s'\n", m->selection->data, m->full_name));
@ -3208,7 +3208,7 @@
CamelURL *url; CamelURL *url;
char *buf; char *buf;
@@ -893,9 +892,8 @@ emft_drop_async_desc (struct _mail_msg * @@ -894,9 +893,8 @@ emft_drop_async_desc (struct _mail_msg *
} }
static void static void
@ -3219,7 +3219,7 @@
CamelFolder *folder; CamelFolder *folder;
/* for types other than folder, we can't drop to the root path */ /* for types other than folder, we can't drop to the root path */
@@ -903,14 +901,14 @@ emft_drop_async_drop (struct _mail_msg * @@ -904,14 +902,14 @@ emft_drop_async_drop (struct _mail_msg *
/* copy or move (aka rename) a folder */ /* copy or move (aka rename) a folder */
emft_drop_folder(m); emft_drop_folder(m);
} else if (m->full_name == NULL) { } else if (m->full_name == NULL) {
@ -3238,7 +3238,7 @@
break; break;
case DND_DROP_TYPE_MESSAGE_RFC822: case DND_DROP_TYPE_MESSAGE_RFC822:
/* import a message/rfc822 stream */ /* import a message/rfc822 stream */
@@ -928,9 +926,8 @@ emft_drop_async_drop (struct _mail_msg * @@ -929,9 +927,8 @@ emft_drop_async_drop (struct _mail_msg *
} }
static void static void
@ -3249,7 +3249,7 @@
gboolean success, delete; gboolean success, delete;
/* ?? */ /* ?? */
@@ -938,7 +935,7 @@ emft_drop_async_done (struct _mail_msg * @@ -939,7 +936,7 @@ emft_drop_async_done (struct _mail_msg *
success = FALSE; success = FALSE;
delete = FALSE; delete = FALSE;
} else { } else {
@ -3258,7 +3258,7 @@
delete = success && m->move && !m->moved; delete = success && m->move && !m->moved;
} }
@@ -946,10 +943,8 @@ emft_drop_async_done (struct _mail_msg * @@ -947,10 +944,8 @@ emft_drop_async_done (struct _mail_msg *
} }
static void static void
@ -3270,7 +3270,7 @@
g_object_unref(m->context); g_object_unref(m->context);
camel_object_unref(m->store); camel_object_unref(m->store);
g_free(m->full_name); g_free(m->full_name);
@@ -958,18 +953,19 @@ emft_drop_async_free (struct _mail_msg * @@ -959,18 +954,19 @@ emft_drop_async_free (struct _mail_msg *
g_free(m->selection); g_free(m->selection);
} }
@ -3296,7 +3296,7 @@
} }
static void static void
@@ -996,7 +992,7 @@ emft_drop_popup_cancel(EPopup *ep, EPopu @@ -997,7 +993,7 @@ emft_drop_popup_cancel(EPopup *ep, EPopu
struct _DragDataReceivedAsync *m = data; struct _DragDataReceivedAsync *m = data;
m->aborted = TRUE; m->aborted = TRUE;
@ -3305,7 +3305,7 @@
} }
static EPopupItem emft_drop_popup_menu[] = { static EPopupItem emft_drop_popup_menu[] = {
@@ -1052,7 +1048,7 @@ tree_drag_data_received(GtkWidget *widge @@ -1053,7 +1049,7 @@ tree_drag_data_received(GtkWidget *widge
return; return;
} }
@ -3314,7 +3314,7 @@
m->context = context; m->context = context;
g_object_ref(context); g_object_ref(context);
m->store = store; m->store = store;
@@ -1686,7 +1682,7 @@ dump_fi (CamelFolderInfo *fi, int depth) @@ -1687,7 +1683,7 @@ dump_fi (CamelFolderInfo *fi, int depth)
#endif #endif
struct _EMFolderTreeGetFolderInfo { struct _EMFolderTreeGetFolderInfo {
@ -3323,7 +3323,7 @@
/* input data */ /* input data */
GtkTreeRowReference *root; GtkTreeRowReference *root;
@@ -1699,10 +1695,9 @@ struct _EMFolderTreeGetFolderInfo { @@ -1700,10 +1696,9 @@ struct _EMFolderTreeGetFolderInfo {
CamelFolderInfo *fi; CamelFolderInfo *fi;
}; };
@ -3336,7 +3336,7 @@
char *ret, *name; char *ret, *name;
name = camel_service_get_name((CamelService *)m->store, TRUE); name = camel_service_get_name((CamelService *)m->store, TRUE);
@@ -1712,18 +1707,16 @@ emft_get_folder_info__desc(struct _mail_ @@ -1713,18 +1708,16 @@ emft_get_folder_info__desc(struct _mail_
} }
static void static void
@ -3358,7 +3358,7 @@
struct _EMFolderTreePrivate *priv = m->emft->priv; struct _EMFolderTreePrivate *priv = m->emft->priv;
struct _EMFolderTreeModelStoreInfo *si; struct _EMFolderTreeModelStoreInfo *si;
GtkTreeIter root, iter; GtkTreeIter root, iter;
@@ -1751,7 +1744,7 @@ emft_get_folder_info__got (struct _mail_ @@ -1752,7 +1745,7 @@ emft_get_folder_info__got (struct _mail_
gtk_tree_model_get_iter ((GtkTreeModel *) model, &root, path); gtk_tree_model_get_iter ((GtkTreeModel *) model, &root, path);
/* if we had an error, then we need to re-set the load subdirs state and collapse the node */ /* if we had an error, then we need to re-set the load subdirs state and collapse the node */
@ -3367,7 +3367,7 @@
gtk_tree_store_set(model, &root, COL_BOOL_LOAD_SUBDIRS, TRUE, -1); gtk_tree_store_set(model, &root, COL_BOOL_LOAD_SUBDIRS, TRUE, -1);
gtk_tree_view_collapse_row (priv->treeview, path); gtk_tree_view_collapse_row (priv->treeview, path);
gtk_tree_path_free (path); gtk_tree_path_free (path);
@@ -1806,10 +1799,8 @@ emft_get_folder_info__got (struct _mail_ @@ -1807,10 +1800,8 @@ emft_get_folder_info__got (struct _mail_
} }
static void static void
@ -3379,7 +3379,7 @@
camel_store_free_folder_info (m->store, m->fi); camel_store_free_folder_info (m->store, m->fi);
gtk_tree_row_reference_free (m->root); gtk_tree_row_reference_free (m->root);
@@ -1818,11 +1809,12 @@ emft_get_folder_info__free (struct _mail @@ -1819,11 +1810,12 @@ emft_get_folder_info__free (struct _mail
g_free (m->top); g_free (m->top);
} }
@ -3397,7 +3397,7 @@
}; };
static void static void
@@ -1909,7 +1901,7 @@ emft_tree_row_expanded (GtkTreeView *tre @@ -1910,7 +1902,7 @@ emft_tree_row_expanded (GtkTreeView *tre
gtk_tree_store_set((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1); gtk_tree_store_set((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1);
@ -3406,7 +3406,7 @@
m->root = gtk_tree_row_reference_new (model, tree_path); m->root = gtk_tree_row_reference_new (model, tree_path);
camel_object_ref (store); camel_object_ref (store);
m->store = store; m->store = store;
@@ -1918,7 +1910,7 @@ emft_tree_row_expanded (GtkTreeView *tre @@ -1919,7 +1911,7 @@ emft_tree_row_expanded (GtkTreeView *tre
m->top = full_name; m->top = full_name;
m->flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST; m->flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST;
@ -3415,9 +3415,9 @@
} }
static gboolean static gboolean
--- evolution-2.11.3/mail/em-folder-browser.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/em-folder-browser.c.kill-ethread 2007-06-18 01:24:46.000000000 -0400
+++ evolution-2.11.3/mail/em-folder-browser.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-folder-browser.c 2007-06-27 11:23:50.000000000 -0400
@@ -839,7 +839,7 @@ get_view_query (ESearchBar *esb) @@ -835,7 +835,7 @@ get_view_query (ESearchBar *esb)
struct _setup_msg { struct _setup_msg {
@ -3426,7 +3426,7 @@
CamelFolder *folder; CamelFolder *folder;
char *query; char *query;
@@ -847,16 +847,15 @@ struct _setup_msg { @@ -843,16 +843,15 @@ struct _setup_msg {
GList *sources_folder; GList *sources_folder;
}; };
@ -3446,7 +3446,7 @@
GList *l, *list = NULL; GList *l, *list = NULL;
CamelFolder *folder; CamelFolder *folder;
@@ -867,12 +866,12 @@ vfolder_setup_do(struct _mail_msg *mm) @@ -863,12 +862,12 @@ vfolder_setup_do(struct _mail_msg *mm)
l = m->sources_uri; l = m->sources_uri;
while (l) { while (l) {
d(printf(" Adding uri: %s\n", (char *)l->data)); d(printf(" Adding uri: %s\n", (char *)l->data));
@ -3461,7 +3461,7 @@
} }
l = l->next; l = l->next;
} }
@@ -896,17 +895,13 @@ vfolder_setup_do(struct _mail_msg *mm) @@ -892,17 +891,13 @@ vfolder_setup_do(struct _mail_msg *mm)
} }
static void static void
@ -3481,7 +3481,7 @@
GList *l; GList *l;
camel_object_unref(m->folder); camel_object_unref(m->folder);
@@ -927,11 +922,12 @@ vfolder_setup_free (struct _mail_msg *mm @@ -923,11 +918,12 @@ vfolder_setup_free (struct _mail_msg *mm
g_list_free(m->sources_folder); g_list_free(m->sources_folder);
} }
@ -3499,7 +3499,7 @@
}; };
/* sources_uri should be camel uri's */ /* sources_uri should be camel uri's */
@@ -941,15 +937,15 @@ vfolder_setup(CamelFolder *folder, const @@ -937,15 +933,15 @@ vfolder_setup(CamelFolder *folder, const
struct _setup_msg *m; struct _setup_msg *m;
int id; int id;
@ -3518,8 +3518,8 @@
return id; return id;
} }
--- evolution-2.11.3/mail/message-list.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/message-list.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/message-list.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/message-list.c 2007-06-27 11:23:50.000000000 -0400
@@ -1841,7 +1841,7 @@ ml_tree_drag_data_get (ETree *tree, int @@ -1841,7 +1841,7 @@ ml_tree_drag_data_get (ETree *tree, int
/* TODO: merge this with the folder tree stuff via empopup targets */ /* TODO: merge this with the folder tree stuff via empopup targets */
/* Drop handling */ /* Drop handling */
@ -3796,8 +3796,8 @@
m->ml = ml; m->ml = ml;
m->search = g_strdup (search); m->search = g_strdup (search);
m->hideexpr = g_strdup (hideexpr); m->hideexpr = g_strdup (hideexpr);
--- evolution-2.11.3/mail/em-sync-stream.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/em-sync-stream.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/em-sync-stream.h 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-sync-stream.h 2007-06-27 11:23:50.000000000 -0400
@@ -29,41 +29,45 @@ requests are always handled in the main @@ -29,41 +29,45 @@ requests are always handled in the main
#ifndef EM_SYNC_STREAM_H #ifndef EM_SYNC_STREAM_H
#define EM_SYNC_STREAM_H #define EM_SYNC_STREAM_H
@ -3874,8 +3874,8 @@
+G_END_DECLS +G_END_DECLS
#endif /* EM_SYNC_STREAM_H */ #endif /* EM_SYNC_STREAM_H */
--- evolution-2.11.3/mail/em-format-html-print.c.kill-ethread 2007-04-22 13:20:08.000000000 -0400 --- evolution-2.11.4/mail/em-format-html-print.c.kill-ethread 2007-04-22 13:20:08.000000000 -0400
+++ evolution-2.11.3/mail/em-format-html-print.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-format-html-print.c 2007-06-27 11:23:50.000000000 -0400
@@ -224,7 +224,7 @@ em_format_html_print_message (EMFormatHT @@ -224,7 +224,7 @@ em_format_html_print_message (EMFormatHT
g_object_ref (efhp); g_object_ref (efhp);
@ -3885,8 +3885,8 @@
} }
void void
--- evolution-2.11.3/mail/em-sync-stream.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/em-sync-stream.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/em-sync-stream.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-sync-stream.c 2007-06-27 11:23:50.000000000 -0400
@@ -25,42 +25,17 @@ @@ -25,42 +25,17 @@
#include <config.h> #include <config.h>
#endif #endif
@ -4312,8 +4312,8 @@
+ g_string_free (emss->buffer, TRUE); + g_string_free (emss->buffer, TRUE);
+ emss->buffer = g_string_sized_new (size); + emss->buffer = g_string_sized_new (size);
} }
--- evolution-2.11.3/mail/em-subscribe-editor.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/em-subscribe-editor.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/em-subscribe-editor.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-subscribe-editor.c 2007-06-27 11:23:50.000000000 -0400
@@ -175,7 +175,7 @@ sub_unref(EMSubscribe *sub) @@ -175,7 +175,7 @@ sub_unref(EMSubscribe *sub)
/* ** Subscribe folder operation **************************************** */ /* ** Subscribe folder operation **************************************** */
@ -4529,8 +4529,8 @@
sub_unref(sub); sub_unref(sub);
} }
--- evolution-2.11.3/mail/mail-mt.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/mail-mt.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/mail-mt.h 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-mt.h 2007-06-27 11:23:50.000000000 -0400
@@ -23,47 +23,64 @@ @@ -23,47 +23,64 @@
#ifndef _MAIL_MT #ifndef _MAIL_MT
#define _MAIL_MT #define _MAIL_MT
@ -4642,8 +4642,8 @@
/* A generic proxy event for anything that can be proxied during the life of the mailer (almost nothing) */ /* A generic proxy event for anything that can be proxied during the life of the mailer (almost nothing) */
/* Note that almost all objects care about the lifecycle of their events, so this cannot be used */ /* Note that almost all objects care about the lifecycle of their events, so this cannot be used */
extern MailAsyncEvent *mail_async_event; extern MailAsyncEvent *mail_async_event;
--- evolution-2.11.3/mail/mail-ops.h.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/mail-ops.h.kill-ethread 2007-06-14 23:48:53.000000000 -0400
+++ evolution-2.11.3/mail/mail-ops.h 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-ops.h 2007-06-27 11:23:50.000000000 -0400
@@ -30,13 +30,14 @@ extern "C" { @@ -30,13 +30,14 @@ extern "C" {
#pragma } #pragma }
#endif /* __cplusplus */ #endif /* __cplusplus */
@ -4684,8 +4684,8 @@
/* and for a store */ /* and for a store */
int mail_get_store (const char *uri, CamelOperation *op, int mail_get_store (const char *uri, CamelOperation *op,
--- evolution-2.11.3/mail/em-composer-utils.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/em-composer-utils.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/em-composer-utils.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-composer-utils.c 2007-06-27 11:23:50.000000000 -0400
@@ -534,7 +534,7 @@ em_utils_composer_save_draft_cb (EMsgCom @@ -534,7 +534,7 @@ em_utils_composer_save_draft_cb (EMsgCom
strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) { strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) {
int id; int id;
@ -4729,8 +4729,8 @@
- mail_get_message (folder, uid, post_reply_to_message, NULL, mail_thread_new); - mail_get_message (folder, uid, post_reply_to_message, NULL, mail_thread_new);
+ mail_get_message (folder, uid, post_reply_to_message, NULL, mail_msg_unordered_push); + mail_get_message (folder, uid, post_reply_to_message, NULL, mail_msg_unordered_push);
} }
--- evolution-2.11.3/mail/mail-folder-cache.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/mail-folder-cache.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/mail-folder-cache.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-folder-cache.c 2007-06-27 11:23:50.000000000 -0400
@@ -860,15 +860,14 @@ update_folders(CamelStore *store, CamelF @@ -860,15 +860,14 @@ update_folders(CamelStore *store, CamelF
@ -4816,8 +4816,8 @@
LOCK(info_lock); LOCK(info_lock);
--- evolution-2.11.3/mail/em-folder-view.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/em-folder-view.c.kill-ethread 2007-06-18 01:20:56.000000000 -0400
+++ evolution-2.11.3/mail/em-folder-view.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/em-folder-view.c 2007-06-27 11:23:50.000000000 -0400
@@ -71,6 +71,7 @@ @@ -71,6 +71,7 @@
#include <gtkhtml/gtkhtml-stream.h> #include <gtkhtml/gtkhtml-stream.h>
@ -4826,7 +4826,7 @@
#include "menus/gal-view-etable.h" #include "menus/gal-view-etable.h"
#include "menus/gal-view-factory-etable.h" #include "menus/gal-view-factory-etable.h"
@@ -695,7 +696,7 @@ emfv_got_folder(char *uri, CamelFolder * @@ -699,7 +700,7 @@ emfv_got_folder(char *uri, CamelFolder *
static void static void
emfv_set_folder_uri(EMFolderView *emfv, const char *uri) emfv_set_folder_uri(EMFolderView *emfv, const char *uri)
{ {
@ -4835,7 +4835,7 @@
} }
static void static void
@@ -1632,7 +1633,7 @@ filter_type_uid (CamelFolder *folder, co @@ -1674,7 +1675,7 @@ filter_type_uid (CamelFolder *folder, co
data->type = type; data->type = type;
data->source = source; data->source = source;
@ -4844,7 +4844,7 @@
} }
static void static void
@@ -1730,7 +1731,7 @@ vfolder_type_uid (CamelFolder *folder, c @@ -1772,7 +1773,7 @@ vfolder_type_uid (CamelFolder *folder, c
data->type = type; data->type = type;
data->uri = g_strdup (uri); data->uri = g_strdup (uri);
@ -4853,7 +4853,7 @@
} }
static void static void
@@ -2373,7 +2374,7 @@ emfv_message_selected_timeout(void *data @@ -2415,7 +2416,7 @@ emfv_message_selected_timeout(void *data
emfv->displayed_uid); emfv->displayed_uid);
gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK); gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
*/ */
@ -4862,8 +4862,8 @@
} else { } else {
e_profile_event_emit("goto.empty", "", 0); e_profile_event_emit("goto.empty", "", 0);
g_free(emfv->priv->selected_uid); g_free(emfv->priv->selected_uid);
--- evolution-2.11.3/mail/mail-session.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400 --- evolution-2.11.4/mail/mail-session.c.kill-ethread 2007-06-03 11:08:08.000000000 -0400
+++ evolution-2.11.3/mail/mail-session.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-session.c 2007-06-27 11:23:50.000000000 -0400
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
#include <libgnome/gnome-sound.h> #include <libgnome/gnome-sound.h>
@ -5137,8 +5137,8 @@
} }
} }
} }
--- evolution-2.11.3/mail/mail-mt.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400 --- evolution-2.11.4/mail/mail-mt.c.kill-ethread 2007-04-18 06:17:32.000000000 -0400
+++ evolution-2.11.3/mail/mail-mt.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/mail/mail-mt.c 2007-06-27 11:23:50.000000000 -0400
@@ -29,8 +29,8 @@ @@ -29,8 +29,8 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <glib/gi18n.h> #include <glib/gi18n.h>
@ -5199,7 +5199,7 @@
msg->cancel = camel_operation_new(mail_operation_status, GINT_TO_POINTER(msg->seq)); msg->cancel = camel_operation_new(mail_operation_status, GINT_TO_POINTER(msg->seq));
camel_exception_init(&msg->ex); camel_exception_init(&msg->ex);
- msg->priv = g_malloc0(sizeof(*msg->priv)); - msg->priv = g_malloc0(sizeof(*msg->priv));
+ msg->priv = g_slice_new (MailMsgPrivate); + msg->priv = g_slice_new0 (MailMsgPrivate);
g_hash_table_insert(mail_msg_active_table, GINT_TO_POINTER(msg->seq), msg); g_hash_table_insert(mail_msg_active_table, GINT_TO_POINTER(msg->seq), msg);
@ -5222,16 +5222,32 @@
e_activity_handler_operation_finished (activity_handler, activity_id); e_activity_handler_operation_finished (activity_handler, activity_id);
} }
@@ -177,58 +176,84 @@ checkmem(void *p) @@ -177,58 +176,93 @@ checkmem(void *p)
} }
#endif #endif
-void mail_msg_free(void *msg) -void mail_msg_free(void *msg)
+gpointer +static void
+mail_msg_ref (gpointer msg) +mail_msg_free (MailMsg *mail_msg)
{ {
- struct _mail_msg *m = msg; - struct _mail_msg *m = msg;
- int activity_id; - int activity_id;
+ /* XXX This function is broken out from mail_msg_unref()
+ * only for the benefit of op_status_exec() below. */
+
+ if (mail_msg->cancel != NULL) {
+ camel_operation_mute (mail_msg->cancel);
+ camel_operation_unref (mail_msg->cancel);
+ }
+
+ camel_exception_clear (&mail_msg->ex);
+ g_slice_free (MailMsgPrivate, mail_msg->priv);
+ g_slice_free1 (mail_msg->info->size, mail_msg);
+}
+
+gpointer
+mail_msg_ref (gpointer msg)
+{
+ MailMsg *mail_msg = msg; + MailMsg *mail_msg = msg;
+ +
+ g_return_val_if_fail (mail_msg != NULL, msg); + g_return_val_if_fail (mail_msg != NULL, msg);
@ -5310,18 +5326,13 @@
- if (m->cancel) { - if (m->cancel) {
- camel_operation_mute(m->cancel); - camel_operation_mute(m->cancel);
- camel_operation_unref(m->cancel); - camel_operation_unref(m->cancel);
+ if (mail_msg->cancel) { - }
+ camel_operation_mute (mail_msg->cancel); -
+ camel_operation_unref (mail_msg->cancel);
}
- camel_exception_clear(&m->ex); - camel_exception_clear(&m->ex);
- /*g_free(m->priv->what);*/ - /*g_free(m->priv->what);*/
- g_free(m->priv); - g_free(m->priv);
- g_free(m); - g_free(m);
+ camel_exception_clear (&mail_msg->ex); + mail_msg_free (mail_msg);
+ g_slice_free (MailMsgPrivate, mail_msg->priv);
+ g_slice_free1 (mail_msg->info->size, mail_msg);
if (activity_id != 0) if (activity_id != 0)
- mail_async_event_emit(mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) end_event_callback, - mail_async_event_emit(mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) end_event_callback,
@ -5333,7 +5344,7 @@
} }
/* hash table of ops->dialogue of active errors */ /* hash table of ops->dialogue of active errors */
@@ -244,9 +269,10 @@ static void error_response(GtkObject *o, @@ -244,9 +278,10 @@ static void error_response(GtkObject *o,
gtk_widget_destroy((GtkWidget *)o); gtk_widget_destroy((GtkWidget *)o);
} }
@ -5346,7 +5357,7 @@
char *what; char *what;
GtkDialog *gd; GtkDialog *gd;
@@ -271,27 +297,27 @@ void mail_msg_check_error(void *msg) @@ -271,27 +306,27 @@ void mail_msg_check_error(void *msg)
/* check to see if we have dialogue already running for this operation */ /* check to see if we have dialogue already running for this operation */
/* we key on the operation pointer, which is at least accurate enough /* we key on the operation pointer, which is at least accurate enough
for the operation type, although it could be on a different object. */ for the operation type, although it could be on a different object. */
@ -5381,7 +5392,7 @@
MAIL_MT_LOCK(mail_msg_lock); MAIL_MT_LOCK(mail_msg_lock);
m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid)); m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid));
@@ -304,13 +330,12 @@ void mail_msg_cancel(unsigned int msgid) @@ -304,13 +339,12 @@ void mail_msg_cancel(unsigned int msgid)
/* waits for a message to be finished processing (freed) /* waits for a message to be finished processing (freed)
@ -5398,7 +5409,7 @@
MAIL_MT_LOCK(mail_msg_lock); MAIL_MT_LOCK(mail_msg_lock);
m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid)); m = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid));
while (m) { while (m) {
@@ -347,9 +372,7 @@ int mail_msg_active(unsigned int msgid) @@ -347,9 +381,7 @@ int mail_msg_active(unsigned int msgid)
void mail_msg_wait_all(void) void mail_msg_wait_all(void)
{ {
@ -5409,7 +5420,7 @@
MAIL_MT_LOCK(mail_msg_lock); MAIL_MT_LOCK(mail_msg_lock);
while (g_hash_table_size(mail_msg_active_table) > 0) { while (g_hash_table_size(mail_msg_active_table) > 0) {
MAIL_MT_UNLOCK(mail_msg_lock); MAIL_MT_UNLOCK(mail_msg_lock);
@@ -367,294 +390,239 @@ void mail_msg_wait_all(void) @@ -367,294 +399,239 @@ void mail_msg_wait_all(void)
} }
/* **************************************** */ /* **************************************** */
@ -5420,10 +5431,10 @@
- GDestroyNotify func; - GDestroyNotify func;
- void *data; - void *data;
-}; -};
-
-static EDList cancel_hook_list = E_DLIST_INITIALISER(cancel_hook_list);
+static GHookList cancel_hook_list; +static GHookList cancel_hook_list;
-static EDList cancel_hook_list = E_DLIST_INITIALISER(cancel_hook_list);
-
-void *mail_cancel_hook_add(GDestroyNotify func, void *data) -void *mail_cancel_hook_add(GDestroyNotify func, void *data)
+GHook * +GHook *
+mail_cancel_hook_add (GHookFunc func, gpointer data) +mail_cancel_hook_add (GHookFunc func, gpointer data)
@ -5537,10 +5548,12 @@
{ {
- EMsgPort *port = (EMsgPort *)d; - EMsgPort *port = (EMsgPort *)d;
- mail_msg_t *m; - mail_msg_t *m;
-
- while (( m = (mail_msg_t *)e_msgport_get(port))) {
+ MailMsg *msg; + MailMsg *msg;
- while (( m = (mail_msg_t *)e_msgport_get(port))) {
+ g_assert (main_loop_queue != NULL);
+ g_assert (msg_reply_queue != NULL);
-#ifdef MALLOC_CHECK -#ifdef MALLOC_CHECK
- checkmem(m); - checkmem(m);
- checkmem(m->cancel); - checkmem(m->cancel);
@ -5552,9 +5565,7 @@
- fprintf(log, "%p: Replied to GUI thread (exception `%s'\n", m, - fprintf(log, "%p: Replied to GUI thread (exception `%s'\n", m,
- camel_exception_get_description(&m->ex)?camel_exception_get_description(&m->ex):"None"); - camel_exception_get_description(&m->ex)?camel_exception_get_description(&m->ex):"None");
-#endif -#endif
+ g_assert (main_loop_queue != NULL); -
+ g_assert (msg_reply_queue != NULL);
- if (m->ops->reply_msg) - if (m->ops->reply_msg)
- m->ops->reply_msg(m); - m->ops->reply_msg(m);
- mail_msg_check_error(m); - mail_msg_check_error(m);
@ -5715,15 +5726,15 @@
+mail_msg_compare (const MailMsg *msg1, const MailMsg *msg2) +mail_msg_compare (const MailMsg *msg1, const MailMsg *msg2)
{ {
- mail_msg_t *m = (mail_msg_t *)msg; - mail_msg_t *m = (mail_msg_t *)msg;
- + gint priority1 = msg1->priority;
+ gint priority2 = msg2->priority;
-#ifdef MALLOC_CHECK -#ifdef MALLOC_CHECK
- checkmem(m); - checkmem(m);
- checkmem(m->cancel); - checkmem(m->cancel);
- checkmem(m->priv); - checkmem(m->priv);
-#endif -#endif
+ gint priority1 = msg1->priority; -
+ gint priority2 = msg2->priority;
- if (m->ops->describe_msg) { - if (m->ops->describe_msg) {
- char *text = m->ops->describe_msg(m, FALSE); - char *text = m->ops->describe_msg(m, FALSE);
+ if (priority1 == priority2) + if (priority1 == priority2)
@ -5791,14 +5802,14 @@
+ (GSourceFunc) mail_msg_idle_cb, NULL); + (GSourceFunc) mail_msg_idle_cb, NULL);
+ G_UNLOCK (idle_source_id); + G_UNLOCK (idle_source_id);
+} +}
+
- g_io_channel_unref(mail_gui_channel);
- g_io_channel_unref(mail_gui_reply_channel);
+void +void
+mail_msg_unordered_push (gpointer msg) +mail_msg_unordered_push (gpointer msg)
+{ +{
+ static GOnce once = G_ONCE_INIT; + static GOnce once = G_ONCE_INIT;
+
- g_io_channel_unref(mail_gui_channel);
- g_io_channel_unref(mail_gui_reply_channel);
+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (10)); + g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (10));
- e_msgport_destroy(mail_gui_port); - e_msgport_destroy(mail_gui_port);
@ -5856,15 +5867,15 @@
- e_thread_set_reply_port(mail_thread_new, mail_gui_reply_port); - e_thread_set_reply_port(mail_thread_new, mail_gui_reply_port);
- e_thread_set_queue_limit(mail_thread_new, 10); - e_thread_set_queue_limit(mail_thread_new, 10);
+ static GOnce once = G_ONCE_INIT; + static GOnce once = G_ONCE_INIT;
+
+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1));
- mail_msg_active_table = g_hash_table_new(NULL, NULL); - mail_msg_active_table = g_hash_table_new(NULL, NULL);
- mail_gui_thread = pthread_self(); - mail_gui_thread = pthread_self();
+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1));
- mail_async_event = mail_async_event_new();
+ g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL); + g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL);
+} +}
+
- mail_async_event = mail_async_event_new();
+gboolean +gboolean
+mail_in_main_thread (void) +mail_in_main_thread (void)
+{ +{
@ -5872,7 +5883,7 @@
} }
/* ********************************************************************** */ /* ********************************************************************** */
@@ -665,7 +633,8 @@ static pthread_mutex_t status_lock = PTH @@ -665,7 +642,8 @@ static pthread_mutex_t status_lock = PTH
/* ********************************************************************** */ /* ********************************************************************** */
struct _proxy_msg { struct _proxy_msg {
@ -5882,7 +5893,7 @@
MailAsyncEvent *ea; MailAsyncEvent *ea;
mail_async_event_t type; mail_async_event_t type;
@@ -679,10 +648,8 @@ struct _proxy_msg { @@ -679,10 +657,8 @@ struct _proxy_msg {
}; };
static void static void
@ -5894,7 +5905,7 @@
m->thread = pthread_self(); m->thread = pthread_self();
m->have_thread = TRUE; m->have_thread = TRUE;
m->func(m->o, m->event_data, m->data); m->func(m->o, m->event_data, m->data);
@@ -697,16 +664,17 @@ static int @@ -697,16 +673,17 @@ static int
idle_async_event(void *mm) idle_async_event(void *mm)
{ {
do_async_event(mm); do_async_event(mm);
@ -5918,7 +5929,7 @@
}; };
MailAsyncEvent *mail_async_event_new(void) MailAsyncEvent *mail_async_event_new(void)
@@ -723,10 +691,9 @@ int mail_async_event_emit(MailAsyncEvent @@ -723,10 +700,9 @@ int mail_async_event_emit(MailAsyncEvent
{ {
struct _proxy_msg *m; struct _proxy_msg *m;
int id; int id;
@ -5930,7 +5941,7 @@
m->func = func; m->func = func;
m->o = o; m->o = o;
m->event_data = event_data; m->event_data = event_data;
@@ -735,7 +702,7 @@ int mail_async_event_emit(MailAsyncEvent @@ -735,7 +711,7 @@ int mail_async_event_emit(MailAsyncEvent
m->type = type; m->type = type;
m->have_thread = FALSE; m->have_thread = FALSE;
@ -5939,7 +5950,7 @@
g_mutex_lock(ea->lock); g_mutex_lock(ea->lock);
ea->tasks = g_slist_prepend(ea->tasks, m); ea->tasks = g_slist_prepend(ea->tasks, m);
g_mutex_unlock(ea->lock); g_mutex_unlock(ea->lock);
@@ -743,12 +710,12 @@ int mail_async_event_emit(MailAsyncEvent @@ -743,12 +719,12 @@ int mail_async_event_emit(MailAsyncEvent
/* We use an idle function instead of our own message port only because the /* We use an idle function instead of our own message port only because the
gui message ports's notification buffer might overflow and deadlock us */ gui message ports's notification buffer might overflow and deadlock us */
if (type == MAIL_ASYNC_GUI) { if (type == MAIL_ASYNC_GUI) {
@ -5955,7 +5966,7 @@
return id; return id;
} }
@@ -762,7 +729,7 @@ int mail_async_event_destroy(MailAsyncEv @@ -762,7 +738,7 @@ int mail_async_event_destroy(MailAsyncEv
g_mutex_lock(ea->lock); g_mutex_lock(ea->lock);
while (ea->tasks) { while (ea->tasks) {
m = ea->tasks->data; m = ea->tasks->data;
@ -5964,7 +5975,7 @@
if (m->have_thread && pthread_equal(m->thread, thread)) { if (m->have_thread && pthread_equal(m->thread, thread)) {
g_warning("Destroying async event from inside an event, returning EDEADLK"); g_warning("Destroying async event from inside an event, returning EDEADLK");
g_mutex_unlock(ea->lock); g_mutex_unlock(ea->lock);
@@ -784,17 +751,18 @@ int mail_async_event_destroy(MailAsyncEv @@ -784,17 +760,18 @@ int mail_async_event_destroy(MailAsyncEv
/* ********************************************************************** */ /* ********************************************************************** */
struct _call_msg { struct _call_msg {
@ -5986,7 +5997,7 @@
void *p1, *p2, *p3, *p4, *p5; void *p1, *p2, *p3, *p4, *p5;
int i1; int i1;
va_list ap; va_list ap;
@@ -842,45 +810,47 @@ do_call(struct _mail_msg *mm) @@ -842,45 +819,47 @@ do_call(struct _mail_msg *mm)
m->ret = m->func(p1, p2, i1, p3, p4, p5); m->ret = m->func(p1, p2, i1, p3, p4, p5);
break; break;
} }
@ -6053,7 +6064,7 @@
return ret; return ret;
} }
@@ -889,40 +859,42 @@ void *mail_call_main(mail_call_t type, M @@ -889,40 +868,42 @@ void *mail_call_main(mail_call_t type, M
/* locked via status_lock */ /* locked via status_lock */
static int busy_state; static int busy_state;
@ -6108,7 +6119,7 @@
} }
MAIL_MT_UNLOCK(status_lock); MAIL_MT_UNLOCK(status_lock);
} }
@@ -930,7 +902,7 @@ void mail_disable_stop(void) @@ -930,7 +911,7 @@ void mail_disable_stop(void)
/* ******************************************************************************** */ /* ******************************************************************************** */
struct _op_status_msg { struct _op_status_msg {
@ -6117,7 +6128,7 @@
struct _CamelOperation *op; struct _CamelOperation *op;
char *what; char *what;
@@ -938,16 +910,16 @@ struct _op_status_msg { @@ -938,16 +919,16 @@ struct _op_status_msg {
void *data; void *data;
}; };
@ -6139,7 +6150,7 @@
MAIL_MT_LOCK (mail_msg_lock); MAIL_MT_LOCK (mail_msg_lock);
@@ -986,8 +958,8 @@ static void do_op_status(struct _mail_ms @@ -986,8 +967,8 @@ static void do_op_status(struct _mail_ms
progress_icon = e_icon_factory_get_icon ("stock_mail-unread", E_ICON_SIZE_MENU); progress_icon = e_icon_factory_get_icon ("stock_mail-unread", E_ICON_SIZE_MENU);
MAIL_MT_UNLOCK (mail_msg_lock); MAIL_MT_UNLOCK (mail_msg_lock);
@ -6150,7 +6161,20 @@
/* uncommenting because message is not very useful for a user, see bug 271734*/ /* uncommenting because message is not very useful for a user, see bug 271734*/
else { else {
what = g_strdup(""); what = g_strdup("");
@@ -1021,18 +993,17 @@ static void do_op_status(struct _mail_ms @@ -1001,11 +982,7 @@ static void do_op_status(struct _mail_ms
MAIL_MT_LOCK (mail_msg_lock);
if (data->activity_state == 3) {
MAIL_MT_UNLOCK (mail_msg_lock);
- if (msg->cancel)
- camel_operation_unref (msg->cancel);
- camel_exception_clear (&msg->ex);
- g_free (msg->priv);
- g_free (msg);
+ mail_msg_free (msg);
} else {
data->activity_state = 2;
MAIL_MT_UNLOCK (mail_msg_lock);
@@ -1021,18 +998,17 @@ static void do_op_status(struct _mail_ms
} }
static void static void
@ -6176,7 +6200,7 @@
}; };
static void static void
@@ -1042,7 +1013,7 @@ mail_operation_status (struct _CamelOper @@ -1042,7 +1018,7 @@ mail_operation_status (struct _CamelOper
d(printf("got operation statys: %s %d%%\n", what, pc)); d(printf("got operation statys: %s %d%%\n", what, pc));
@ -6185,7 +6209,7 @@
m->op = op; m->op = op;
m->what = g_strdup(what); m->what = g_strdup(what);
switch (pc) { switch (pc) {
@@ -1055,7 +1026,7 @@ mail_operation_status (struct _CamelOper @@ -1055,7 +1031,7 @@ mail_operation_status (struct _CamelOper
} }
m->pc = pc; m->pc = pc;
m->data = data; m->data = data;
@ -6194,8 +6218,8 @@
} }
/* ******************** */ /* ******************** */
--- evolution-2.11.3/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2007-04-18 06:17:14.000000000 -0400 --- evolution-2.11.4/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2007-04-18 06:17:14.000000000 -0400
+++ evolution-2.11.3/plugins/folder-unsubscribe/folder-unsubscribe.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/folder-unsubscribe/folder-unsubscribe.c 2007-06-27 11:23:50.000000000 -0400
@@ -44,32 +44,30 @@ void org_gnome_mail_folder_unsubscribe ( @@ -44,32 +44,30 @@ void org_gnome_mail_folder_unsubscribe (
@ -6275,8 +6299,8 @@
- e_thread_put (mail_thread_new, (EMsg *) unsub); - e_thread_put (mail_thread_new, (EMsg *) unsub);
+ mail_msg_unordered_push (unsub); + mail_msg_unordered_push (unsub);
} }
--- evolution-2.11.3/plugins/mark-all-read/mark-all-read.c.kill-ethread 2007-05-14 00:24:02.000000000 -0400 --- evolution-2.11.4/plugins/mark-all-read/mark-all-read.c.kill-ethread 2007-05-14 00:24:02.000000000 -0400
+++ evolution-2.11.3/plugins/mark-all-read/mark-all-read.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/mark-all-read/mark-all-read.c 2007-06-27 11:23:50.000000000 -0400
@@ -44,7 +44,7 @@ org_gnome_mark_all_read (EPlugin *ep, EM @@ -44,7 +44,7 @@ org_gnome_mark_all_read (EPlugin *ep, EM
return; return;
} }
@ -6286,8 +6310,8 @@
} }
static void static void
--- evolution-2.11.3/plugins/exchange-operations/exchange-folder.c.kill-ethread 2007-05-13 13:41:07.000000000 -0400 --- evolution-2.11.4/plugins/exchange-operations/exchange-folder.c.kill-ethread 2007-05-13 13:41:07.000000000 -0400
+++ evolution-2.11.3/plugins/exchange-operations/exchange-folder.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/exchange-operations/exchange-folder.c 2007-06-27 11:23:50.000000000 -0400
@@ -140,7 +140,7 @@ org_gnome_exchange_folder_inbox_unsubscr @@ -140,7 +140,7 @@ org_gnome_exchange_folder_inbox_unsubscr
inbox_physical_uri = e_folder_get_physical_uri (inbox); inbox_physical_uri = e_folder_get_physical_uri (inbox);
@ -6297,8 +6321,8 @@
} }
--- evolution-2.11.3/plugins/save-attachments/save-attachments.c.kill-ethread 2007-04-18 06:17:20.000000000 -0400 --- evolution-2.11.4/plugins/save-attachments/save-attachments.c.kill-ethread 2007-04-18 06:17:20.000000000 -0400
+++ evolution-2.11.3/plugins/save-attachments/save-attachments.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/save-attachments/save-attachments.c 2007-06-27 11:23:50.000000000 -0400
@@ -403,5 +403,5 @@ org_gnome_save_attachments_save(EPlugin @@ -403,5 +403,5 @@ org_gnome_save_attachments_save(EPlugin
camel_object_ref(data->folder); camel_object_ref(data->folder);
data->uid = g_strdup(target->uids->pdata[0]); data->uid = g_strdup(target->uids->pdata[0]);
@ -6306,8 +6330,8 @@
- mail_get_message(data->folder, data->uid, save_got_message, data, mail_thread_new); - mail_get_message(data->folder, data->uid, save_got_message, data, mail_thread_new);
+ mail_get_message(data->folder, data->uid, save_got_message, data, mail_msg_unordered_push); + mail_get_message(data->folder, data->uid, save_got_message, data, mail_msg_unordered_push);
} }
--- evolution-2.11.3/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2007-04-18 06:17:17.000000000 -0400 --- evolution-2.11.4/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2007-04-18 06:17:17.000000000 -0400
+++ evolution-2.11.3/plugins/mailing-list-actions/mailing-list-actions.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/mailing-list-actions/mailing-list-actions.c 2007-06-27 11:23:50.000000000 -0400
@@ -89,7 +89,7 @@ void emla_list_action (EPlugin *item, EM @@ -89,7 +89,7 @@ void emla_list_action (EPlugin *item, EM
data->uri = strdup (sel->uri); data->uri = strdup (sel->uri);
@ -6317,8 +6341,8 @@
} }
void emla_list_action_do (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data) void emla_list_action_do (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data)
--- evolution-2.11.3/plugins/groupwise-features/share-folder-common.c.kill-ethread 2007-04-18 06:17:15.000000000 -0400 --- evolution-2.11.4/plugins/groupwise-features/share-folder-common.c.kill-ethread 2007-04-18 06:17:15.000000000 -0400
+++ evolution-2.11.3/plugins/groupwise-features/share-folder-common.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/plugins/groupwise-features/share-folder-common.c 2007-06-27 11:23:50.000000000 -0400
@@ -121,7 +121,7 @@ shared_folder_abort (EPlugin *ep, EConfi @@ -121,7 +121,7 @@ shared_folder_abort (EPlugin *ep, EConfi
} }
@ -6416,8 +6440,8 @@
return id; return id;
} }
--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2007-04-18 06:18:37.000000000 -0400 --- evolution-2.11.4/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2007-04-18 06:18:37.000000000 -0400
+++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.h 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/calendar/gui/alarm-notify/alarm-notify.h 2007-06-27 11:23:50.000000000 -0400
@@ -39,19 +39,6 @@ typedef struct _AlarmNotifyClass AlarmNo @@ -39,19 +39,6 @@ typedef struct _AlarmNotifyClass AlarmNo
typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate; typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate;
@ -6438,8 +6462,8 @@
struct _AlarmNotify { struct _AlarmNotify {
BonoboObject object; BonoboObject object;
--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2007-04-18 06:18:37.000000000 -0400 --- evolution-2.11.4/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2007-04-18 06:18:37.000000000 -0400
+++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-notify.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/calendar/gui/alarm-notify/alarm-notify.c 2007-06-27 11:23:50.000000000 -0400
@@ -45,10 +45,6 @@ struct _AlarmNotifyPrivate { @@ -45,10 +45,6 @@ struct _AlarmNotifyPrivate {
GMutex *mutex; GMutex *mutex;
}; };
@ -6552,8 +6576,8 @@
} }
static void static void
--- evolution-2.11.3/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2007-06-01 03:09:22.000000000 -0400 --- evolution-2.11.4/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2007-06-01 03:09:22.000000000 -0400
+++ evolution-2.11.3/calendar/gui/alarm-notify/alarm-queue.c 2007-06-06 12:59:41.000000000 -0400 +++ evolution-2.11.4/calendar/gui/alarm-notify/alarm-queue.c 2007-06-27 11:23:50.000000000 -0400
@@ -97,9 +97,6 @@ static int tray_blink_id = -1; @@ -97,9 +97,6 @@ static int tray_blink_id = -1;
static int tray_blink_state = FALSE; static int tray_blink_state = FALSE;
static AlarmNotify *an; static AlarmNotify *an;

View File

@ -45,7 +45,7 @@
Name: evolution Name: evolution
Version: 2.11.4 Version: 2.11.4
Release: 1%{?dist} Release: 2%{?dist}
License: GPL License: GPL
Group: Applications/Productivity Group: Applications/Productivity
Summary: GNOME's next-generation groupware suite Summary: GNOME's next-generation groupware suite
@ -703,6 +703,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/evolution/%{evo_major}/libmenus.so %{_libdir}/evolution/%{evo_major}/libmenus.so
%changelog %changelog
* Wed Jun 27 2007 Matthew Barnes <mbarnes@redhat.com> - 2.11.4-2.fc8
- Revise patch for GNOME bug #363695 to fix RH bug #245289 (frequent hangs).
* Mon Jun 18 2007 Matthew Barnes <mbarnes@redhat.com> - 2.11.4-1.fc8 * Mon Jun 18 2007 Matthew Barnes <mbarnes@redhat.com> - 2.11.4-1.fc8
- Update to 2.11.4 - Update to 2.11.4
- Remove patch for GNOME bug #447727 (fixed upstream). - Remove patch for GNOME bug #447727 (fixed upstream).