From: Vivek Sekar Date: Mon, 22 Sep 2008 09:02:14 +0000 (+0000) Subject: Merged fix for 87744 from trunk, using revision 5566. X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=ed365bbf0bbe7103b8616d09d4dc70f525208ecd;p=modest Merged fix for 87744 from trunk, using revision 5566. pmo-diablo-r5654 --- diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index 48ce5d7..fa68071 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -722,8 +722,8 @@ on_remove_msgs_finished (ModestMailOperation *mail_op, modest_header_view_refilter (header_view); } -static gboolean -on_idle_delete_message (gpointer user_data) +static gpointer +thread_prepare_delete_message (gpointer userdata) { TnyList *headers = NULL, *tmp_headers = NULL; TnyFolder *folder = NULL; @@ -731,13 +731,13 @@ on_idle_delete_message (gpointer user_data) TnyHeader *header = NULL, *msg_header = NULL; TnyMsg *msg = NULL; TnyAccount *account = NULL; - const char *uri = NULL; + char *uri; gchar *uid = NULL; ModestMailOperation *mail_op = NULL; ModestWindow *main_win = NULL; - uri = (char *) user_data; - + uri = (char *) userdata; + msg = find_message_by_url (uri, &account); if (account) g_object_unref (account); @@ -745,6 +745,7 @@ on_idle_delete_message (gpointer user_data) if (!msg) { g_warning ("%s: Could not find message '%s'", __FUNCTION__, uri); g_idle_add (notify_error_in_dbus_callback, NULL); + g_free (uri); return FALSE; } @@ -756,6 +757,7 @@ on_idle_delete_message (gpointer user_data) g_warning ("%s: Could not find folder (uri:'%s')", __FUNCTION__, uri); g_object_unref (msg); g_idle_add (notify_error_in_dbus_callback, NULL); + g_free (uri); return FALSE; } @@ -798,6 +800,7 @@ on_idle_delete_message (gpointer user_data) if (folder) g_object_unref (folder); g_idle_add (notify_error_in_dbus_callback, NULL); + g_free (uri); return FALSE; } @@ -825,10 +828,24 @@ on_idle_delete_message (gpointer user_data) /* Clean */ if (header) g_object_unref (header); + g_free (uri); return FALSE; } +static gboolean +on_idle_delete_message (gpointer user_data) +{ + const char *uri = NULL; + + uri = (char *) user_data; + + g_thread_create (thread_prepare_delete_message, g_strdup (uri), FALSE, NULL); + + return FALSE; + +} +