aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-vee-folder.c
diff options
context:
space:
mode:
authorPeter Williams <peterw@ximian.com>2001-07-06 00:40:45 +0800
committerPeter Williams <peterw@src.gnome.org>2001-07-06 00:40:45 +0800
commitd0eee4860651b7ce2e30f535372773a87db233c1 (patch)
treed9b9c45f96b8cc1bf255301c9005e0a2a6254fae /camel/camel-vee-folder.c
parentfb6a190f0085747e1146bc2f9153753fb95dd94b (diff)
downloadgsoc2013-evolution-d0eee4860651b7ce2e30f535372773a87db233c1.tar.gz
gsoc2013-evolution-d0eee4860651b7ce2e30f535372773a87db233c1.tar.zst
gsoc2013-evolution-d0eee4860651b7ce2e30f535372773a87db233c1.zip
Move this before the camel_vee_folder_remove_folder because that function
2001-07-05 Peter Williams <peterw@ximian.com> * camel-vee-folder.c (camel_vee_folder_finalise): Move this before the camel_vee_folder_remove_folder because that function modifies p->folders messing up our iteration. (camel_vee_folder_finalise): Don't unref our summary; camel-folder now does this. * camel-object.h (CamelObject): Add a 'destroying' flag to CamelObject. * camel-object.c (obj_init): Clear 'destroying'. (camel_object_unref): If 'destroying' then do not send the finalize event and do not call finalize functions. Otherwise, set destroying so just in case we get refed (eg event code) we don't get doubly finalized. svn path=/trunk/; revision=10811
Diffstat (limited to 'camel/camel-vee-folder.c')
-rw-r--r--camel/camel-vee-folder.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c
index 83a4bb4893..06cfaabbee 100644
--- a/camel/camel-vee-folder.c
+++ b/camel/camel-vee-folder.c
@@ -160,6 +160,8 @@ camel_vee_folder_finalise (CamelObject *obj)
node = p->folders;
while (node) {
CamelFolder *f = node->data;
+ node = g_list_next(node);
+
if (vf != folder_unmatched) {
camel_object_unhook_event((CamelObject *)f, "folder_changed", (CamelObjectEventHookFunc) folder_changed, vf);
camel_object_unhook_event((CamelObject *)f, "message_changed", (CamelObjectEventHookFunc) message_changed, vf);
@@ -168,7 +170,6 @@ camel_vee_folder_finalise (CamelObject *obj)
camel_vee_folder_remove_folder(vf, f);
}
camel_object_unref((CamelObject *)f);
- node = g_list_next(node);
}
g_free(vf->expression);
@@ -176,7 +177,6 @@ camel_vee_folder_finalise (CamelObject *obj)
camel_folder_change_info_free(vf->changes);
camel_object_unref((CamelObject *)vf->search);
- camel_object_unref((CamelObject *)((CamelFolder *)vf)->summary);
#ifdef ENABLE_THREADS
g_mutex_free(p->summary_lock);