[evolution-mapi] Use camel_service_ref_session().



commit 17d2df7f06f384b2633ea2a472d1255e65397aec
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Feb 11 10:44:02 2013 -0500

    Use camel_service_ref_session().

 src/camel/camel-mapi-store.c                       |   16 +++++++++++++---
 src/camel/camel-mapi-transport.c                   |    6 +++++-
 src/configuration/e-mapi-config-utils.c            |    4 +++-
 .../e-mapi-subscribe-foreign-folder.c              |    4 +++-
 4 files changed, 24 insertions(+), 6 deletions(-)
---
diff --git a/src/camel/camel-mapi-store.c b/src/camel/camel-mapi-store.c
index 396afc0..6b01562 100644
--- a/src/camel/camel-mapi-store.c
+++ b/src/camel/camel-mapi-store.c
@@ -2194,15 +2194,18 @@ mapi_connect_sync (CamelService *service,
 		return FALSE;
 	}
 
-	session = camel_service_get_session (service);
+	session = camel_service_ref_session (service);
 
 	status = camel_service_get_connection_status (service);
 	if (status == CAMEL_SERVICE_DISCONNECTED) {
+		g_object_unref (session);
 		return FALSE;
 	}
 
-	if (check_for_connection (service, NULL))
+	if (check_for_connection (service, NULL)) {
+		g_object_unref (session);
 		return TRUE;
+	}
 
 	name = camel_service_get_name (service, TRUE);
 	camel_operation_push_message (cancellable, _("Connecting to '%s'"), name);
@@ -2213,6 +2216,7 @@ mapi_connect_sync (CamelService *service,
 
 	if (!camel_session_authenticate_sync (session, service, empd.krb_sso ? "MAPIKRB" : NULL, cancellable, error)) {
 		camel_operation_pop_message (cancellable);
+		g_object_unref (session);
 		g_free (name);
 		return FALSE;
 	}
@@ -2226,6 +2230,7 @@ mapi_connect_sync (CamelService *service,
 
 	conn = camel_mapi_store_ref_connection (store, cancellable, error);
 	if (!conn) {
+		g_object_unref (session);
 		g_free (name);
 
 		return FALSE;
@@ -2260,6 +2265,8 @@ mapi_connect_sync (CamelService *service,
 	g_object_unref (conn);
 	g_free (name);
 
+	g_object_unref (session);
+
 	return TRUE;
 }
 
@@ -2630,6 +2637,7 @@ mapi_authenticate_sync (CamelService *service,
 {
 	CamelAuthenticationResult result;
 	CamelMapiStore *store = CAMEL_MAPI_STORE (service);
+	CamelSession *session;
 	CamelSettings *settings;
 	CamelMapiSettings *mapi_settings;
 	CamelNetworkSettings *network_settings;
@@ -2671,9 +2679,11 @@ mapi_authenticate_sync (CamelService *service,
 
 	password_str = g_string_new (password);
 	g_rec_mutex_lock (&store->priv->connection_lock);
+	session = camel_service_ref_session (service);
 	store->priv->connection = e_mapi_connection_new (
-		e_mail_session_get_registry (E_MAIL_SESSION (camel_service_get_session (service))),
+		e_mail_session_get_registry (E_MAIL_SESSION (session)),
 		profile, password_str, cancellable, &mapi_error);
+	g_object_unref (session);
 	g_string_free (password_str, TRUE);
 	if (store->priv->connection && e_mapi_connection_connected (store->priv->connection)) {
 		result = CAMEL_AUTHENTICATION_ACCEPTED;
diff --git a/src/camel/camel-mapi-transport.c b/src/camel/camel-mapi-transport.c
index c477865..31dc8c5 100644
--- a/src/camel/camel-mapi-transport.c
+++ b/src/camel/camel-mapi-transport.c
@@ -104,9 +104,11 @@ mapi_send_to_sync (CamelTransport *transport,
 	if (!profile) {
 		/* try to find corresponding CamelStore with profile name filled */
 		const gchar *my_uid = camel_service_get_uid (service);
-		CamelSession *session = camel_service_get_session (service);
+		CamelSession *session;
 		GList *services, *s;
 
+		session = camel_service_ref_session (service);
+
 		services = camel_session_list_services (session);
 		for (s = services; s && my_uid && !profile; s = s->next) {
 			CamelService *store = s->data;
@@ -129,6 +131,8 @@ mapi_send_to_sync (CamelTransport *transport,
 		}
 
 		g_list_free_full (services, g_object_unref);
+
+		g_object_unref (session);
 	}
 
 	conn = e_mapi_connection_find (profile);
diff --git a/src/configuration/e-mapi-config-utils.c b/src/configuration/e-mapi-config-utils.c
index fba01c4..9199d9b 100644
--- a/src/configuration/e-mapi-config-utils.c
+++ b/src/configuration/e-mapi-config-utils.c
@@ -664,7 +664,7 @@ action_folder_size_cb (GtkAction *action,
 		ESourceRegistry *registry;
 		ESource *source;
 
-		session = camel_service_get_session (CAMEL_SERVICE (store));
+		session = camel_service_ref_session (CAMEL_SERVICE (store));
 		registry = e_mail_session_get_registry (E_MAIL_SESSION (session));
 		source = e_source_registry_ref_source (registry, camel_service_get_uid (CAMEL_SERVICE (store)));
 
@@ -676,6 +676,8 @@ action_folder_size_cb (GtkAction *action,
 		g_object_unref (settings);
 
 		g_object_unref (source); 
+
+		g_object_unref (session);
 	}
 
 	g_free (profile);
diff --git a/src/configuration/e-mapi-subscribe-foreign-folder.c b/src/configuration/e-mapi-subscribe-foreign-folder.c
index 205de55..3cff9fa 100644
--- a/src/configuration/e-mapi-subscribe-foreign-folder.c
+++ b/src/configuration/e-mapi-subscribe-foreign-folder.c
@@ -413,7 +413,7 @@ check_foreign_folder_idle (GObject *with_object,
 
 	g_object_unref (settings);
 
-	session = camel_service_get_session (CAMEL_SERVICE (mapi_store));
+	session = camel_service_ref_session (CAMEL_SERVICE (mapi_store));
 	if (E_IS_MAIL_SESSION (session))
 		registry = e_mail_session_get_registry (E_MAIL_SESSION (session));
 
@@ -439,6 +439,8 @@ check_foreign_folder_idle (GObject *with_object,
 		cffd->folder_id = 0;
 	}
 
+	g_object_unref (session);
+
 	g_free (folder_name);
 	g_free (profile);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]