aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-store.c')
-rw-r--r--camel/camel-store.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/camel/camel-store.c b/camel/camel-store.c
index b4eae9975e..ab0c4241f7 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -151,8 +151,12 @@ get_default_folder_name (CamelStore *store, CamelException *ex)
static CamelFolder *
lookup_folder (CamelStore *store, const char *folder_name)
{
- if (store->folders)
- return g_hash_table_lookup (store->folders, folder_name);
+ if (store->folders) {
+ CamelFolder *folder = g_hash_table_lookup (store->folders, folder_name);
+ if (folder)
+ gtk_object_ref(GTK_OBJECT(folder));
+ return folder;
+ }
return NULL;
}
@@ -166,7 +170,7 @@ cache_folder (CamelStore *store, const char *folder_name, CamelFolder *folder)
g_warning ("Caching folder %s that already exists.",
folder_name);
}
- g_hash_table_insert (store->folders, (gpointer)g_strdup(folder_name), folder);
+ g_hash_table_insert (store->folders, camel_folder_get_full_name (folder), folder);
gtk_signal_connect_object (GTK_OBJECT (folder), "destroy",
GTK_SIGNAL_FUNC (CS_CLASS (store)->uncache_folder),
GTK_OBJECT (store));