aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-10-05 02:12:22 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-10-05 02:12:22 +0800
commit16d6bd7083b3a77645ffe68fcb49c7cf36e0b9ff (patch)
treed1b774982746569122aec311ec1c3d47554e50c1
parent4ac79b2b5b74f4dc523e0d5ccd2c86b292c0aebc (diff)
downloadgsoc2013-evolution-16d6bd7083b3a77645ffe68fcb49c7cf36e0b9ff.tar.gz
gsoc2013-evolution-16d6bd7083b3a77645ffe68fcb49c7cf36e0b9ff.tar.zst
gsoc2013-evolution-16d6bd7083b3a77645ffe68fcb49c7cf36e0b9ff.zip
Unregister the operation before unreffing it.
2001-10-04 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_service_connect): Unregister the operation before unreffing it. svn path=/trunk/; revision=13412
-rw-r--r--camel/camel-service.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/camel/camel-service.c b/camel/camel-service.c
index fed8945008..befc8d4f69 100644
--- a/camel/camel-service.c
+++ b/camel/camel-service.c
@@ -230,6 +230,7 @@ gboolean
camel_service_connect (CamelService *service, CamelException *ex)
{
gboolean ret = FALSE;
+ gboolean unreg = FALSE;
g_return_val_if_fail (CAMEL_IS_SERVICE (service), FALSE);
g_return_val_if_fail (service->session != NULL, FALSE);
@@ -250,6 +251,7 @@ camel_service_connect (CamelService *service, CamelException *ex)
if (!service->connect_op) {
service->connect_op = camel_operation_new (NULL, NULL);
camel_operation_register (service->connect_op);
+ unreg = TRUE;
}
CAMEL_SERVICE_UNLOCK (service, connect_op_lock);
@@ -258,6 +260,8 @@ camel_service_connect (CamelService *service, CamelException *ex)
service->status = ret ? CAMEL_SERVICE_CONNECTED : CAMEL_SERVICE_DISCONNECTED;
CAMEL_SERVICE_LOCK (service, connect_op_lock);
+ if (unreg)
+ camel_operation_unregister (service->connect_op);
camel_operation_unref (service->connect_op);
service->connect_op = NULL;
CAMEL_SERVICE_UNLOCK (service, connect_op_lock);