- Revise patch for GNOME bug #362638 to fix RH bug #220714 (certificate

prompt causes crash).
This commit is contained in:
Matthew Barnes 2007-02-15 23:35:32 +00:00
parent 88949d42a8
commit 537d207aa8
2 changed files with 125 additions and 105 deletions

View File

@ -1,6 +1,6 @@
--- evolution-2.9.1/mail/mail-send-recv.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/mail-send-recv.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-send-recv.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-send-recv.c 2007-02-15 16:04:42.000000000 -0500
@@ -817,7 +817,7 @@ @@ -819,7 +819,7 @@
m->folders = folders; m->folders = folders;
m->info = sinfo; m->info = sinfo;
@ -9,9 +9,9 @@
} else { } else {
receive_done ("", data); receive_done ("", data);
} }
--- evolution-2.9.1/mail/mail-component.c.kill-ethread 2006-09-04 06:36:49.000000000 -0400 --- evolution-2.9.91/mail/mail-component.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-component.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-component.c 2007-02-15 16:04:42.000000000 -0500
@@ -964,7 +964,7 @@ @@ -965,7 +965,7 @@
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);
@ -20,8 +20,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.9.1/mail/mail-ops.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/mail-ops.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-ops.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-ops.c 2007-02-15 16:04:42.000000000 -0500
@@ -221,7 +221,7 @@ @@ -221,7 +221,7 @@
camel_filter_driver_remove_rule_by_name (m->driver, "new-mail-notification"); camel_filter_driver_remove_rule_by_name (m->driver, "new-mail-notification");
} }
@ -167,7 +167,7 @@
struct _get_message_msg *m; struct _get_message_msg *m;
@@ -1795,7 +1795,7 @@ @@ -1795,7 +1795,7 @@
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done; m->done = done;
m->cancel = camel_operation_new(NULL, NULL); m->cancel = camel_operation_new(NULL, NULL);
- e_thread_put(thread, (EMsg *)m); - e_thread_put(thread, (EMsg *)m);
@ -185,7 +185,7 @@
struct _get_message_msg *m; struct _get_message_msg *m;
@@ -1833,7 +1833,7 @@ @@ -1833,7 +1833,7 @@
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done; m->done = done;
m->cancel = camel_operation_new(NULL, NULL); m->cancel = camel_operation_new(NULL, NULL);
- e_thread_put(thread, (EMsg *)m); - e_thread_put(thread, (EMsg *)m);
@ -247,8 +247,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/em-folder-utils.c.kill-ethread 2006-02-08 06:51:32.000000000 -0500 --- evolution-2.9.91/mail/em-folder-utils.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/em-folder-utils.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-folder-utils.c 2007-02-15 16:04:42.000000000 -0500
@@ -260,7 +260,7 @@ @@ -260,7 +260,7 @@
m->delete = delete; m->delete = delete;
seq = m->msg.seq; seq = m->msg.seq;
@ -267,8 +267,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/importers/elm-importer.c.kill-ethread 2005-12-17 13:35:37.000000000 -0500 --- evolution-2.9.91/mail/importers/elm-importer.c.kill-ethread 2007-01-03 10:27:16.000000000 -0500
+++ evolution-2.9.1/mail/importers/elm-importer.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/importers/elm-importer.c 2007-02-15 16:04:42.000000000 -0500
@@ -312,7 +312,7 @@ @@ -312,7 +312,7 @@
id = m->msg.seq; id = m->msg.seq;
@ -278,8 +278,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/importers/mail-importer.c.kill-ethread 2006-02-08 06:51:32.000000000 -0500 --- evolution-2.9.91/mail/importers/mail-importer.c.kill-ethread 2007-01-03 10:27:16.000000000 -0500
+++ evolution-2.9.1/mail/importers/mail-importer.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/importers/mail-importer.c 2007-02-15 16:04:42.000000000 -0500
@@ -329,7 +329,7 @@ @@ -329,7 +329,7 @@
} }
@ -289,8 +289,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/importers/pine-importer.c.kill-ethread 2006-02-05 18:46:26.000000000 -0500 --- evolution-2.9.91/mail/importers/pine-importer.c.kill-ethread 2007-01-03 10:27:16.000000000 -0500
+++ evolution-2.9.1/mail/importers/pine-importer.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/mail/importers/pine-importer.c 2007-02-15 16:04:42.000000000 -0500
@@ -350,7 +350,7 @@ @@ -350,7 +350,7 @@
id = m->msg.seq; id = m->msg.seq;
@ -300,8 +300,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/mail-vfolder.c.kill-ethread 2006-06-30 05:46:26.000000000 -0400 --- evolution-2.9.91/mail/mail-vfolder.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-vfolder.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-vfolder.c 2007-02-15 16:04:42.000000000 -0500
@@ -188,7 +188,7 @@ @@ -188,7 +188,7 @@
m->sources_folder = sources_folder; m->sources_folder = sources_folder;
@ -347,8 +347,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.9.1/mail/em-format-html.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/em-format-html.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/em-format-html.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-format-html.c 2007-02-15 16:04:42.000000000 -0500
@@ -1374,7 +1374,7 @@ @@ -1374,7 +1374,7 @@
} }
@ -358,8 +358,8 @@
} }
efh->priv->format_timeout_id = 0; efh->priv->format_timeout_id = 0;
--- evolution-2.9.1/mail/em-folder-properties.c.kill-ethread 2006-02-23 08:26:41.000000000 -0500 --- evolution-2.9.91/mail/em-folder-properties.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/em-folder-properties.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-folder-properties.c 2007-02-15 16:04:42.000000000 -0500
@@ -379,7 +379,7 @@ @@ -379,7 +379,7 @@
} }
@ -369,8 +369,8 @@
else else
emfp_dialog_got_folder((char *)uri, folder, NULL); emfp_dialog_got_folder((char *)uri, folder, NULL);
} }
--- evolution-2.9.1/mail/em-folder-tree.c.kill-ethread 2006-08-07 14:55:02.000000000 -0400 --- evolution-2.9.91/mail/em-folder-tree.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/em-folder-tree.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-folder-tree.c 2007-02-15 16:04:42.000000000 -0500
@@ -966,7 +966,7 @@ @@ -966,7 +966,7 @@
tree_drag_data_action(struct _DragDataReceivedAsync *m) tree_drag_data_action(struct _DragDataReceivedAsync *m)
{ {
@ -389,9 +389,9 @@
} }
static gboolean static gboolean
--- evolution-2.9.1/mail/em-folder-browser.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/em-folder-browser.c.kill-ethread 2007-02-12 05:37:31.000000000 -0500
+++ evolution-2.9.1/mail/em-folder-browser.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-folder-browser.c 2007-02-15 16:04:42.000000000 -0500
@@ -950,7 +950,7 @@ @@ -948,7 +948,7 @@
m->sources_folder = sources_folder; m->sources_folder = sources_folder;
id = m->msg.seq; id = m->msg.seq;
@ -400,9 +400,9 @@
return id; return id;
} }
--- evolution-2.9.1/mail/message-list.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/message-list.c.kill-ethread 2007-01-18 07:31:51.000000000 -0500
+++ evolution-2.9.1/mail/message-list.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/message-list.c 2007-02-15 16:04:42.000000000 -0500
@@ -1855,7 +1855,7 @@ @@ -1888,7 +1888,7 @@
ml_drop_action(struct _drop_msg *m) ml_drop_action(struct _drop_msg *m)
{ {
m->move = m->action == GDK_ACTION_MOVE; m->move = m->action == GDK_ACTION_MOVE;
@ -411,7 +411,7 @@
} }
static void static void
@@ -3875,7 +3875,7 @@ @@ -3922,7 +3922,7 @@
m->ml->regen = g_list_prepend(m->ml->regen, m); m->ml->regen = g_list_prepend(m->ml->regen, m);
/* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */ /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */
@ -420,9 +420,9 @@
m->ml->regen_timeout_msg = NULL; m->ml->regen_timeout_msg = NULL;
m->ml->regen_timeout_id = 0; m->ml->regen_timeout_id = 0;
--- evolution-2.9.1/mail/em-format-html-print.c.kill-ethread 2005-05-19 02:46:23.000000000 -0400 --- evolution-2.9.91/mail/em-format-html-print.c.kill-ethread 2007-02-12 01:58:01.000000000 -0500
+++ evolution-2.9.1/mail/em-format-html-print.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-format-html-print.c 2007-02-15 16:04:42.000000000 -0500
@@ -228,7 +228,7 @@ @@ -262,7 +262,7 @@
g_object_ref(source); g_object_ref(source);
g_object_ref(efhp); g_object_ref(efhp);
@ -431,9 +431,9 @@
return 0; /* damn async ... */ return 0; /* damn async ... */
} }
--- evolution-2.9.1/mail/em-sync-stream.c.kill-ethread 2005-12-21 09:10:25.000000000 -0500 --- evolution-2.9.91/mail/em-sync-stream.c.kill-ethread 2007-02-09 15:16:33.000000000 -0500
+++ evolution-2.9.1/mail/em-sync-stream.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-sync-stream.c 2007-02-15 16:04:42.000000000 -0500
@@ -267,7 +267,7 @@ @@ -268,7 +268,7 @@
if (emss->cancel) if (emss->cancel)
return -1; return -1;
@ -442,7 +442,7 @@
EMSS_CLASS(emss)->sync_write(stream, buffer, n); EMSS_CLASS(emss)->sync_write(stream, buffer, n);
#ifdef LOG_STREAM #ifdef LOG_STREAM
if (p->logfd) if (p->logfd)
@@ -297,7 +297,7 @@ @@ -298,7 +298,7 @@
if (emss->cancel) if (emss->cancel)
return -1; return -1;
@ -451,7 +451,7 @@
return ((EMSyncStreamClass *)(((CamelObject *)emss)->klass))->sync_flush(stream); return ((EMSyncStreamClass *)(((CamelObject *)emss)->klass))->sync_flush(stream);
else else
sync_op(emss, EMSS_FLUSH, NULL, 0); sync_op(emss, EMSS_FLUSH, NULL, 0);
@@ -315,7 +315,7 @@ @@ -316,7 +316,7 @@
d(printf("%p: closing stream\n", stream)); d(printf("%p: closing stream\n", stream));
@ -460,8 +460,8 @@
#ifdef LOG_STREAM #ifdef LOG_STREAM
if (emss->priv->logfd) { if (emss->priv->logfd) {
fclose(emss->priv->logfd); fclose(emss->priv->logfd);
--- evolution-2.9.1/mail/em-subscribe-editor.c.kill-ethread 2006-07-24 05:01:30.000000000 -0400 --- evolution-2.9.91/mail/em-subscribe-editor.c.kill-ethread 2007-01-08 11:35:48.000000000 -0500
+++ evolution-2.9.1/mail/em-subscribe-editor.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-subscribe-editor.c 2007-02-15 16:04:42.000000000 -0500
@@ -229,7 +229,7 @@ @@ -229,7 +229,7 @@
next = (struct _zsubscribe_msg *)e_dlist_remhead(&m->sub->subscribe); next = (struct _zsubscribe_msg *)e_dlist_remhead(&m->sub->subscribe);
if (next) { if (next) {
@ -480,7 +480,7 @@
} else { } else {
d(printf("queueing subscribe folder '%s'\n", spath)); d(printf("queueing subscribe folder '%s'\n", spath));
e_dlist_addtail(&sub->subscribe, (EDListNode *)m); e_dlist_addtail(&sub->subscribe, (EDListNode *)m);
@@ -420,7 +420,7 @@ @@ -443,7 +443,7 @@
id = m->msg.seq; id = m->msg.seq;
@ -489,8 +489,8 @@
return id; return id;
} }
--- evolution-2.9.1/mail/mail-mt.h.kill-ethread 2006-10-16 10:37:09.000000000 -0400 --- evolution-2.9.91/mail/mail-mt.h.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-mt.h 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-mt.h 2007-02-15 16:04:42.000000000 -0500
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
EMsg msg; /* parent type */ EMsg msg; /* parent type */
struct _mail_msg_op *ops; /* operation functions */ struct _mail_msg_op *ops; /* operation functions */
@ -548,8 +548,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.9.1/mail/mail-ops.h.kill-ethread 2006-02-20 11:01:01.000000000 -0500 --- evolution-2.9.91/mail/mail-ops.h.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-ops.h 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-ops.h 2007-02-15 16:04:42.000000000 -0500
@@ -30,6 +30,8 @@ @@ -30,6 +30,8 @@
#pragma } #pragma }
#endif /* __cplusplus */ #endif /* __cplusplus */
@ -583,8 +583,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.9.1/mail/em-composer-utils.c.kill-ethread 2006-04-18 16:56:36.000000000 -0400 --- evolution-2.9.91/mail/em-composer-utils.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/em-composer-utils.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-composer-utils.c 2007-02-15 16:04:42.000000000 -0500
@@ -534,7 +534,7 @@ @@ -534,7 +534,7 @@
strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) { strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) {
int id; int id;
@ -628,8 +628,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.9.1/mail/mail-folder-cache.c.kill-ethread 2006-07-26 09:19:18.000000000 -0400 --- evolution-2.9.91/mail/mail-folder-cache.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-folder-cache.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-folder-cache.c 2007-02-15 16:04:42.000000000 -0500
@@ -907,7 +907,7 @@ @@ -907,7 +907,7 @@
m->store = store; m->store = store;
camel_object_ref (store); camel_object_ref (store);
@ -648,8 +648,8 @@
LOCK(info_lock); LOCK(info_lock);
--- evolution-2.9.1/mail/em-folder-view.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/em-folder-view.c.kill-ethread 2007-02-12 01:58:01.000000000 -0500
+++ evolution-2.9.1/mail/em-folder-view.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/em-folder-view.c 2007-02-15 16:04:42.000000000 -0500
@@ -693,7 +693,7 @@ @@ -693,7 +693,7 @@
static void static void
emfv_set_folder_uri(EMFolderView *emfv, const char *uri) emfv_set_folder_uri(EMFolderView *emfv, const char *uri)
@ -659,7 +659,7 @@
} }
static void static void
@@ -1588,7 +1588,7 @@ @@ -1611,7 +1611,7 @@
data->type = type; data->type = type;
data->source = source; data->source = source;
@ -668,7 +668,7 @@
} }
static void static void
@@ -1686,7 +1686,7 @@ @@ -1709,7 +1709,7 @@
data->type = type; data->type = type;
data->uri = g_strdup (uri); data->uri = g_strdup (uri);
@ -677,7 +677,7 @@
} }
static void static void
@@ -2335,7 +2335,7 @@ @@ -2369,7 +2369,7 @@
g_object_ref (emfv); g_object_ref (emfv);
/* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */ /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */
e_profile_event_emit("goto.load", emfv->displayed_uid, 0); e_profile_event_emit("goto.load", emfv->displayed_uid, 0);
@ -686,8 +686,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.9.1/mail/mail-session.c.kill-ethread 2006-10-26 14:24:06.000000000 -0400 --- evolution-2.9.91/mail/mail-session.c.kill-ethread 2007-02-15 16:04:42.000000000 -0500
+++ evolution-2.9.1/mail/mail-session.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-session.c 2007-02-15 16:04:42.000000000 -0500
@@ -374,7 +374,7 @@ @@ -374,7 +374,7 @@
if (cancel) if (cancel)
user_message_reply = e_msgport_new (); user_message_reply = e_msgport_new ();
@ -708,8 +708,8 @@
} }
if (cancel) { if (cancel) {
--- evolution-2.9.1/mail/mail-mt.c.kill-ethread 2006-10-16 10:37:09.000000000 -0400 --- evolution-2.9.91/mail/mail-mt.c.kill-ethread 2007-01-03 10:27:18.000000000 -0500
+++ evolution-2.9.1/mail/mail-mt.c 2006-10-26 14:24:55.000000000 -0400 +++ evolution-2.9.91/mail/mail-mt.c 2007-02-15 16:28:12.000000000 -0500
@@ -82,12 +82,8 @@ @@ -82,12 +82,8 @@
static pthread_mutex_t mail_msg_lock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mail_msg_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t mail_msg_cond = PTHREAD_COND_INITIALIZER; static pthread_cond_t mail_msg_cond = PTHREAD_COND_INITIALIZER;
@ -753,7 +753,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);
@@ -420,241 +412,187 @@ @@ -420,241 +412,193 @@
MAIL_MT_UNLOCK(mail_msg_lock); MAIL_MT_UNLOCK(mail_msg_lock);
} }
@ -828,11 +828,17 @@
-#endif -#endif
+ /* check the main loop queue */ + /* check the main loop queue */
+ while ((msg = g_async_queue_try_pop (main_loop_queue)) != NULL) { + while ((msg = g_async_queue_try_pop (main_loop_queue)) != NULL) {
+
+ /* If the message has a reply_port, it must also have a
+ * receive_msg() callback. The receive_msg() callback is
+ * responsible for issuing the reply, and the recipient of
+ * the reply is responsible for freeing the message. */
+ if (msg->msg.reply_port != NULL) {
+ g_assert (msg->ops->receive_msg != NULL);
+ msg->ops->receive_msg (msg);
+ } else {
+ if (msg->ops->receive_msg != NULL) + if (msg->ops->receive_msg != NULL)
+ msg->ops->receive_msg (msg); + msg->ops->receive_msg (msg);
+ if (msg->msg.reply_port != NULL)
+ e_msgport_reply ((EMsg *) msg);
+ else {
+ if (msg->ops->reply_msg != NULL) + if (msg->ops->reply_msg != NULL)
+ msg->ops->reply_msg (msg); + msg->ops->reply_msg (msg);
+ mail_msg_free (msg); + mail_msg_free (msg);
@ -1052,16 +1058,16 @@
+mail_msg_fast_ordered_push (mail_msg_t *msg) +mail_msg_fast_ordered_push (mail_msg_t *msg)
{ {
- mail_msg_wait_all(); - mail_msg_wait_all();
+ static GOnce once = G_ONCE_INIT; -
- e_thread_destroy(mail_thread_queued_slow); - e_thread_destroy(mail_thread_queued_slow);
- e_thread_destroy(mail_thread_queued); - e_thread_destroy(mail_thread_queued);
- e_thread_destroy(mail_thread_new); - e_thread_destroy(mail_thread_new);
+ g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1)); + static GOnce once = G_ONCE_INIT;
- g_io_channel_unref(mail_gui_channel); - g_io_channel_unref(mail_gui_channel);
- g_io_channel_unref(mail_gui_reply_channel); - g_io_channel_unref(mail_gui_reply_channel);
- + g_once (&once, (GThreadFunc) create_thread_pool, GINT_TO_POINTER (1));
- e_msgport_destroy(mail_gui_port); - e_msgport_destroy(mail_gui_port);
- e_msgport_destroy(mail_gui_reply_port); - e_msgport_destroy(mail_gui_reply_port);
+ g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL); + g_thread_pool_push ((GThreadPool *) once.retval, msg, NULL);
@ -1125,7 +1131,7 @@
} }
/* ********************************************************************** */ /* ********************************************************************** */
@@ -723,7 +661,6 @@ @@ -723,7 +667,6 @@
{ {
struct _proxy_msg *m; struct _proxy_msg *m;
int id; int id;
@ -1133,7 +1139,7 @@
/* we dont have a reply port for this, we dont care when/if it gets executed, just queue it */ /* we dont have a reply port for this, we dont care when/if it gets executed, just queue it */
m = mail_msg_new(&async_event_op, NULL, sizeof(*m)); m = mail_msg_new(&async_event_op, NULL, sizeof(*m));
@@ -743,12 +680,12 @@ @@ -743,12 +686,12 @@
/* 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) {
@ -1149,7 +1155,17 @@
return id; return id;
} }
@@ -857,11 +794,10 @@ @@ -842,6 +785,9 @@
m->ret = m->func(p1, p2, i1, p3, p4, p5);
break;
}
+
+ if (mm->msg.reply_port != NULL)
+ e_msgport_reply ((EMsg *) mm);
}
static struct _mail_msg_op mail_call_op = {
@@ -857,11 +803,10 @@
void *ret; void *ret;
va_list ap; va_list ap;
EMsgPort *reply = NULL; EMsgPort *reply = NULL;
@ -1162,7 +1178,7 @@
reply = e_msgport_new(); reply = e_msgport_new();
m = mail_msg_new(&mail_call_op, reply, sizeof(*m)); m = mail_msg_new(&mail_call_op, reply, sizeof(*m));
@@ -869,8 +805,8 @@ @@ -869,8 +814,8 @@
m->func = func; m->func = func;
G_VA_COPY(m->ap, ap); G_VA_COPY(m->ap, ap);
@ -1173,7 +1189,7 @@
e_msgport_wait(reply); e_msgport_wait(reply);
e_msgport_destroy(reply); e_msgport_destroy(reply);
} else { } else {
@@ -909,7 +845,7 @@ @@ -909,7 +854,7 @@
busy_state++; busy_state++;
if (busy_state == 1) { if (busy_state == 1) {
m = mail_msg_new(&set_busy_op, NULL, sizeof(*m)); m = mail_msg_new(&set_busy_op, NULL, sizeof(*m));
@ -1182,7 +1198,7 @@
} }
MAIL_MT_UNLOCK(status_lock); MAIL_MT_UNLOCK(status_lock);
} }
@@ -922,7 +858,7 @@ @@ -922,7 +867,7 @@
busy_state--; busy_state--;
if (busy_state == 0) { if (busy_state == 0) {
m = mail_msg_new(&set_busy_op, NULL, sizeof(*m)); m = mail_msg_new(&set_busy_op, NULL, sizeof(*m));
@ -1191,7 +1207,7 @@
} }
MAIL_MT_UNLOCK(status_lock); MAIL_MT_UNLOCK(status_lock);
} }
@@ -947,7 +883,7 @@ @@ -947,7 +892,7 @@
char *out, *p, *o, c; char *out, *p, *o, c;
int pc; int pc;
@ -1200,7 +1216,7 @@
MAIL_MT_LOCK (mail_msg_lock); MAIL_MT_LOCK (mail_msg_lock);
@@ -1055,7 +991,7 @@ @@ -1055,7 +1000,7 @@
} }
m->pc = pc; m->pc = pc;
m->data = data; m->data = data;
@ -1209,8 +1225,8 @@
} }
/* ******************** */ /* ******************** */
--- evolution-2.9.1/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2004-10-22 15:32:26.000000000 -0400 --- evolution-2.9.91/plugins/folder-unsubscribe/folder-unsubscribe.c.kill-ethread 2007-01-03 10:27:06.000000000 -0500
+++ evolution-2.9.1/plugins/folder-unsubscribe/folder-unsubscribe.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/folder-unsubscribe/folder-unsubscribe.c 2007-02-15 16:04:42.000000000 -0500
@@ -108,5 +108,5 @@ @@ -108,5 +108,5 @@
unsub = mail_msg_new (&unsubscribe_op, NULL, sizeof (struct _folder_unsub_t)); unsub = mail_msg_new (&unsubscribe_op, NULL, sizeof (struct _folder_unsub_t));
unsub->uri = g_strdup (target->uri); unsub->uri = g_strdup (target->uri);
@ -1218,8 +1234,8 @@
- e_thread_put (mail_thread_new, (EMsg *) unsub); - e_thread_put (mail_thread_new, (EMsg *) unsub);
+ mail_msg_unordered_push ((mail_msg_t *) unsub); + mail_msg_unordered_push ((mail_msg_t *) unsub);
} }
--- evolution-2.9.1/plugins/mark-all-read/mark-all-read.c.kill-ethread 2005-05-19 13:32:41.000000000 -0400 --- evolution-2.9.91/plugins/mark-all-read/mark-all-read.c.kill-ethread 2007-01-03 10:27:08.000000000 -0500
+++ evolution-2.9.1/plugins/mark-all-read/mark-all-read.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/mark-all-read/mark-all-read.c 2007-02-15 16:04:42.000000000 -0500
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
return; return;
} }
@ -1229,8 +1245,8 @@
} }
static void static void
--- evolution-2.9.1/plugins/exchange-operations/exchange-folder.c.kill-ethread 2006-06-13 06:15:40.000000000 -0400 --- evolution-2.9.91/plugins/exchange-operations/exchange-folder.c.kill-ethread 2007-01-03 10:27:08.000000000 -0500
+++ evolution-2.9.1/plugins/exchange-operations/exchange-folder.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/exchange-operations/exchange-folder.c 2007-02-15 16:04:42.000000000 -0500
@@ -134,7 +134,7 @@ @@ -134,7 +134,7 @@
inbox_physical_uri = e_folder_get_physical_uri (inbox); inbox_physical_uri = e_folder_get_physical_uri (inbox);
@ -1240,8 +1256,8 @@
} }
--- evolution-2.9.1/plugins/save-attachments/save-attachments.c.kill-ethread 2006-07-07 19:48:24.000000000 -0400 --- evolution-2.9.91/plugins/save-attachments/save-attachments.c.kill-ethread 2007-02-09 15:16:33.000000000 -0500
+++ evolution-2.9.1/plugins/save-attachments/save-attachments.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/save-attachments/save-attachments.c 2007-02-15 16:04:42.000000000 -0500
@@ -407,5 +407,5 @@ @@ -407,5 +407,5 @@
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]);
@ -1249,8 +1265,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.9.1/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2006-08-23 04:38:52.000000000 -0400 --- evolution-2.9.91/plugins/mailing-list-actions/mailing-list-actions.c.kill-ethread 2007-01-03 10:27:09.000000000 -0500
+++ evolution-2.9.1/plugins/mailing-list-actions/mailing-list-actions.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/mailing-list-actions/mailing-list-actions.c 2007-02-15 16:04:42.000000000 -0500
@@ -89,7 +89,7 @@ @@ -89,7 +89,7 @@
data->uri = strdup (sel->uri); data->uri = strdup (sel->uri);
@ -1260,8 +1276,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.9.1/plugins/groupwise-features/share-folder-common.c.kill-ethread 2006-02-08 06:08:24.000000000 -0500 --- evolution-2.9.91/plugins/groupwise-features/share-folder-common.c.kill-ethread 2007-01-03 10:27:07.000000000 -0500
+++ evolution-2.9.1/plugins/groupwise-features/share-folder-common.c 2006-10-26 14:24:56.000000000 -0400 +++ evolution-2.9.91/plugins/groupwise-features/share-folder-common.c 2007-02-15 16:04:42.000000000 -0500
@@ -239,7 +239,7 @@ @@ -239,7 +239,7 @@
m->done = done; m->done = done;
g_free (namebuf); g_free (namebuf);
@ -1271,8 +1287,8 @@
return id; return id;
} }
--- evolution-2.9.1/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2006-04-21 15:38:16.000000000 -0400 --- evolution-2.9.91/calendar/gui/alarm-notify/alarm-notify.h.kill-ethread 2007-01-03 10:27:57.000000000 -0500
+++ evolution-2.9.1/calendar/gui/alarm-notify/alarm-notify.h 2006-10-26 14:24:53.000000000 -0400 +++ evolution-2.9.91/calendar/gui/alarm-notify/alarm-notify.h 2007-02-15 16:04:42.000000000 -0500
@@ -39,19 +39,6 @@ @@ -39,19 +39,6 @@
typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate; typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate;
@ -1293,8 +1309,8 @@
struct _AlarmNotify { struct _AlarmNotify {
BonoboObject object; BonoboObject object;
--- evolution-2.9.1/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2006-08-24 09:53:20.000000000 -0400 --- evolution-2.9.91/calendar/gui/alarm-notify/alarm-notify.c.kill-ethread 2007-01-03 10:27:57.000000000 -0500
+++ evolution-2.9.1/calendar/gui/alarm-notify/alarm-notify.c 2006-10-26 14:24:53.000000000 -0400 +++ evolution-2.9.91/calendar/gui/alarm-notify/alarm-notify.c 2007-02-15 16:04:42.000000000 -0500
@@ -45,10 +45,6 @@ @@ -45,10 +45,6 @@
GMutex *mutex; GMutex *mutex;
}; };
@ -1306,7 +1322,7 @@
#define d(x) x #define d(x) x
@@ -284,72 +280,12 @@ @@ -286,72 +282,12 @@
g_mutex_free (priv->mutex); g_mutex_free (priv->mutex);
g_free (priv); g_free (priv);
@ -1379,7 +1395,7 @@
/** /**
* alarm_notify_new: * alarm_notify_new:
* *
@@ -361,23 +297,10 @@ @@ -363,23 +299,10 @@
AlarmNotify * AlarmNotify *
alarm_notify_new (void) alarm_notify_new (void)
{ {
@ -1407,8 +1423,8 @@
} }
static void static void
--- evolution-2.9.1/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2006-08-30 10:36:04.000000000 -0400 --- evolution-2.9.91/calendar/gui/alarm-notify/alarm-queue.c.kill-ethread 2007-01-03 10:27:57.000000000 -0500
+++ evolution-2.9.1/calendar/gui/alarm-notify/alarm-queue.c 2006-10-26 14:24:53.000000000 -0400 +++ evolution-2.9.91/calendar/gui/alarm-notify/alarm-queue.c 2007-02-15 16:04:42.000000000 -0500
@@ -115,9 +115,6 @@ @@ -115,9 +115,6 @@
static int tray_blink_state = FALSE; static int tray_blink_state = FALSE;
static AlarmNotify *an; static AlarmNotify *an;
@ -1874,7 +1890,7 @@
} }
/* Performs notification of a display alarm */ /* Performs notification of a display alarm */
@@ -1836,21 +1833,13 @@ @@ -1840,21 +1837,13 @@
new_midnight = time_day_end_with_zone (time (NULL), zone); new_midnight = time_day_end_with_zone (time (NULL), zone);
if (new_midnight > midnight) { if (new_midnight > midnight) {
@ -1901,7 +1917,7 @@
} }
return TRUE; return TRUE;
@@ -1981,14 +1970,15 @@ @@ -1985,14 +1974,15 @@
} }
struct _alarm_client_msg { struct _alarm_client_msg {
@ -1920,7 +1936,7 @@
g_return_if_fail (alarm_queue_inited); g_return_if_fail (alarm_queue_inited);
g_return_if_fail (client != NULL); g_return_if_fail (client != NULL);
@@ -2019,6 +2009,8 @@ @@ -2023,6 +2013,8 @@
G_CALLBACK (cal_opened_cb), G_CALLBACK (cal_opened_cb),
ca); ca);
} }
@ -1929,7 +1945,7 @@
} }
/** /**
@@ -2038,20 +2030,13 @@ @@ -2042,20 +2034,13 @@
void void
alarm_queue_add_client (ECal *client) alarm_queue_add_client (ECal *client)
{ {
@ -1955,7 +1971,7 @@
} }
/* Removes a component an its alarms */ /* Removes a component an its alarms */
@@ -2103,11 +2088,10 @@ @@ -2107,11 +2092,10 @@
* Removes a calendar client from the alarm queueing system. * Removes a calendar client from the alarm queueing system.
**/ **/
static void static void
@ -1969,7 +1985,7 @@
g_return_if_fail (alarm_queue_inited); g_return_if_fail (alarm_queue_inited);
g_return_if_fail (client != NULL); g_return_if_fail (client != NULL);
@@ -2144,24 +2128,20 @@ @@ -2148,24 +2132,20 @@
g_free (ca); g_free (ca);
g_hash_table_remove (client_alarms_hash, client); g_hash_table_remove (client_alarms_hash, client);

View File

@ -45,7 +45,7 @@
Name: evolution Name: evolution
Version: 2.9.91 Version: 2.9.91
Release: 2%{?dist} Release: 3%{?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
@ -725,6 +725,10 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/evolution/%{evo_major}/libmenus.so %{_libdir}/evolution/%{evo_major}/libmenus.so
%changelog %changelog
* Thu Feb 15 2007 Matthew Barnes <mbarnes@redhat.com> - 2.9.91-3.fc7
- Revise patch for GNOME bug #362638 to fix RH bug #220714
(certificate prompt causes crash).
* Tue Feb 13 2007 Matthew Barnes <mbarnes@redhat.com> - 2.9.91-2.fc7 * Tue Feb 13 2007 Matthew Barnes <mbarnes@redhat.com> - 2.9.91-2.fc7
- Require GConf2 in post. - Require GConf2 in post.
- Require scrollkeeper in post and postun. - Require scrollkeeper in post and postun.