aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r--camel/camel-filter-driver.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c
index 58e8de5412..ede9aa6936 100644
--- a/camel/camel-filter-driver.c
+++ b/camel/camel-filter-driver.c
@@ -204,8 +204,10 @@ camel_filter_driver_finalise (CamelObject *obj)
e_sexp_unref(p->eval);
- if (p->defaultfolder)
+ if (p->defaultfolder) {
+ camel_folder_thaw (p->defaultfolder);
camel_object_unref (CAMEL_OBJECT (p->defaultfolder));
+ }
while ((node = (struct _filter_rule *)e_dlist_remhead(&p->rules))) {
g_free(node->match);
@@ -264,13 +266,17 @@ camel_filter_driver_set_default_folder (CamelFilterDriver *d, CamelFolder *def)
{
struct _CamelFilterDriverPrivate *p = _PRIVATE (d);
- if (p->defaultfolder)
+ if (p->defaultfolder) {
+ camel_folder_thaw (p->defaultfolder);
camel_object_unref (CAMEL_OBJECT (p->defaultfolder));
+ }
p->defaultfolder = def;
- if (p->defaultfolder)
+ if (p->defaultfolder) {
+ camel_folder_freeze (p->defaultfolder);
camel_object_ref (CAMEL_OBJECT (p->defaultfolder));
+ }
}
void