diff options
author | Peter Williams <peterw@ximian.com> | 2001-07-06 00:40:45 +0800 |
---|---|---|
committer | Peter Williams <peterw@src.gnome.org> | 2001-07-06 00:40:45 +0800 |
commit | d0eee4860651b7ce2e30f535372773a87db233c1 (patch) | |
tree | d9b9c45f96b8cc1bf255301c9005e0a2a6254fae /camel/camel-vee-folder.c | |
parent | fb6a190f0085747e1146bc2f9153753fb95dd94b (diff) | |
download | gsoc2013-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.c | 4 |
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); |