aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-07-15 20:57:17 +0800
committerMatthew Barnes <mbarnes@redhat.com>2011-07-15 21:30:32 +0800
commit39c14c53de640f9131cf511f5e0dbb6eb4d600a7 (patch)
treee7d10ed5c6e3123bd7b94a928a52947bd0e14088
parent44e007e171208094f5d763f5826064fc71071b51 (diff)
downloadgsoc2013-evolution-39c14c53de640f9131cf511f5e0dbb6eb4d600a7.tar.gz
gsoc2013-evolution-39c14c53de640f9131cf511f5e0dbb6eb4d600a7.tar.zst
gsoc2013-evolution-39c14c53de640f9131cf511f5e0dbb6eb4d600a7.zip
EMailBackend: Explicitly remove CamelServices during dispose.
Calling camel_session_remove_services() while disposing of our CamelSession instance can help break reference cycles and ensures the CamelServices get finalized properly.
-rw-r--r--mail/e-mail-backend.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index b22dbcf2ca..17007f2c72 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -519,6 +519,8 @@ mail_backend_dispose (GObject *object)
g_signal_handlers_disconnect_matched (
priv->session, G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, object);
+ camel_session_remove_services (
+ CAMEL_SESSION (priv->session));
g_object_unref (priv->session);
priv->session = NULL;
}