From 8d6afbe9102a979e28c861e3e4d34900cadd2eae Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Fri, 2 Jun 2000 16:12:26 +0000 Subject: Ref and unref objects in the service cache properly. 2000-06-02 Christopher James Lahey * camel-session.c: Ref and unref objects in the service cache properly. * camel-store.c: Ref the folder when returning it using lookup_folder. Used the folder's full name for the key for the folder cache since that's used to uncache it. svn path=/trunk/; revision=3388 --- camel/camel-session.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'camel/camel-session.c') diff --git a/camel/camel-session.c b/camel/camel-session.c index 17d7e60ee0..bc8393b7ef 100644 --- a/camel/camel-session.c +++ b/camel/camel-session.c @@ -26,6 +26,7 @@ */ #include +#include #include "camel-session.h" #include "camel-store.h" #include "camel-transport.h" @@ -191,6 +192,7 @@ camel_session_list_providers (CamelSession *session, gboolean load) static void service_cache_remove(CamelService *service, CamelSession *session) { + gtk_object_unref(GTK_OBJECT(service)); g_hash_table_remove(session->service_cache, service->url); } @@ -247,6 +249,7 @@ camel_session_get_service (CamelSession *session, const char *url_string, service = camel_service_new (provider->object_types[type], session, url, ex); if (service) { g_hash_table_insert(session->service_cache, url, service); + gtk_object_ref(GTK_OBJECT(service)); gtk_signal_connect((GtkObject *)service, "destroy", service_cache_remove, session); } return service; -- cgit v1.2.3