aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/em-composer-utils.c34
1 files changed, 29 insertions, 5 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index a8815f6f54..0927d6fa90 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -366,13 +366,17 @@ composer_presend_check_identity (EMsgComposer *composer,
EMailSession *session)
{
EComposerHeaderTable *table;
+ EClientCache *client_cache;
ESourceRegistry *registry;
ESource *source;
const gchar *uid;
gboolean success = TRUE;
table = e_msg_composer_get_header_table (composer);
- registry = e_composer_header_table_get_registry (table);
+
+ client_cache = e_composer_header_table_ref_client_cache (table);
+ registry = e_client_cache_ref_registry (client_cache);
+
uid = e_composer_header_table_get_identity_uid (table);
source = e_source_registry_ref_source (registry, uid);
g_return_val_if_fail (source != NULL, FALSE);
@@ -384,6 +388,8 @@ composer_presend_check_identity (EMsgComposer *composer,
success = FALSE;
}
+ g_object_unref (client_cache);
+ g_object_unref (registry);
g_object_unref (source);
return success;
@@ -837,6 +843,7 @@ em_utils_composer_save_to_drafts_cb (EMsgComposer *composer,
{
AsyncContext *context;
EComposerHeaderTable *table;
+ EClientCache *client_cache;
ESourceRegistry *registry;
ESource *source;
const gchar *local_drafts_folder_uri;
@@ -851,10 +858,15 @@ em_utils_composer_save_to_drafts_cb (EMsgComposer *composer,
table = e_msg_composer_get_header_table (composer);
- registry = e_composer_header_table_get_registry (table);
+ client_cache = e_composer_header_table_ref_client_cache (table);
+ registry = e_client_cache_ref_registry (client_cache);
+
identity_uid = e_composer_header_table_get_identity_uid (table);
source = e_source_registry_ref_source (registry, identity_uid);
+ g_clear_object (&client_cache);
+ g_clear_object (&registry);
+
/* Get the selected identity's preferred Drafts folder. */
if (source != NULL) {
ESourceMailComposition *extension;
@@ -999,6 +1011,7 @@ create_new_composer (EShell *shell,
CamelFolder *folder)
{
EMsgComposer *composer;
+ EClientCache *client_cache;
ESourceRegistry *registry;
EComposerHeaderTable *table;
ESource *source = NULL;
@@ -1007,7 +1020,9 @@ create_new_composer (EShell *shell,
composer = e_msg_composer_new (shell);
table = e_msg_composer_get_header_table (composer);
- registry = e_composer_header_table_get_registry (table);
+
+ client_cache = e_composer_header_table_ref_client_cache (table);
+ registry = e_client_cache_ref_registry (client_cache);
if (folder != NULL) {
CamelStore *store;
@@ -1036,6 +1051,9 @@ create_new_composer (EShell *shell,
g_free (identity);
+ g_object_unref (client_cache);
+ g_object_unref (registry);
+
return composer;
}
@@ -1080,8 +1098,9 @@ em_utils_compose_new_message_with_mailto (EShell *shell,
CamelFolder *folder)
{
EMsgComposer *composer;
- ESourceRegistry *registry;
EComposerHeaderTable *table;
+ EClientCache *client_cache;
+ ESourceRegistry *registry;
g_return_val_if_fail (E_IS_SHELL (shell), NULL);
@@ -1094,7 +1113,9 @@ em_utils_compose_new_message_with_mailto (EShell *shell,
composer = e_msg_composer_new (shell);
table = e_msg_composer_get_header_table (composer);
- registry = e_composer_header_table_get_registry (table);
+
+ client_cache = e_composer_header_table_ref_client_cache (table);
+ registry = e_client_cache_ref_registry (client_cache);
composer_set_no_change (composer);
@@ -1117,6 +1138,9 @@ em_utils_compose_new_message_with_mailto (EShell *shell,
}
}
+ g_object_unref (client_cache);
+ g_object_unref (registry);
+
return composer;
}