aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/camel-filter-driver.c12
2 files changed, 16 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index ff45a526bd..71068702ec 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-16 Jeffrey Stedfast <fejj@ximian.com>
+
+ * camel-filter-driver.c (camel_filter_driver_finalise): Thaw the
+ defaultfolder.
+ (camel_filter_driver_set_default_folder): Thaw the defaultfolder
+ we're about to replace, and freeze the new defaultfolder.
+
2001-02-15 Jeffrey Stedfast <fejj@ximian.com>
* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Emit
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