From 7cc3d5f443de8cb8f67006e8d28d85aca6ca0507 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Mon, 9 Jul 2001 01:49:41 +0000 Subject: Changed so we dont have the list changing under us, just going to the next 2001-07-06 Not Zed * camel-vee-folder.c (camel_vee_folder_finalise): Changed so we dont have the list changing under us, just going to the next node before we call a function that might change the list is potentially dangerous (slight mod of peters fix). Hmm, i think it would've double-unref'd it too(?) svn path=/trunk/; revision=10900 --- camel/camel-vee-folder.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'camel/camel-vee-folder.c') diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c index 06cfaabbee..fde38fa1d5 100644 --- a/camel/camel-vee-folder.c +++ b/camel/camel-vee-folder.c @@ -160,16 +160,17 @@ 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); /* this updates the vfolder */ if ((vf->flags & CAMEL_STORE_FOLDER_PRIVATE) == 0) - camel_vee_folder_remove_folder(vf, f); + vee_folder_remove_folder(vf, f); } camel_object_unref((CamelObject *)f); + + node = g_list_next(node); } g_free(vf->expression); -- cgit v1.2.3