diff options
-rw-r--r-- | camel/ChangeLog | 6 | ||||
-rw-r--r-- | camel/camel-folder-thread.c | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 61d30384d2..340ca4fc4c 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,9 @@ +2003-06-13 Larry Ewing <lewing@ximian.com> + + * camel-folder-thread.c (camel_folder_thread_messages_apply): + don't leak the summary when reloading it. Fixes a very large + leak. + 2003-06-17 Not Zed <NotZed@Ximian.com> * camel-vee-folder.c (vee_folder_remove_folder): Calculate ranges diff --git a/camel/camel-folder-thread.c b/camel/camel-folder-thread.c index 9d5ecf2861..a67ab5d5b2 100644 --- a/camel/camel-folder-thread.c +++ b/camel/camel-folder-thread.c @@ -662,6 +662,10 @@ camel_folder_thread_messages_apply(CamelFolderThread *thread, GPtrArray *uids) g_ptr_array_add(all, info); g_hash_table_destroy(table); + + thread->tree = NULL; + e_memchunk_destroy(thread->node_chunks); + thread->node_chunks = e_memchunk_new(32, sizeof(CamelFolderThreadNode)); thread_summary(thread, all); g_ptr_array_free(thread->summary, TRUE); @@ -777,7 +781,7 @@ camel_folder_thread_messages_add(CamelFolderThread *thread, GPtrArray *summary) /* reset the tree, and rebuild fully */ thread->tree = NULL; e_memchunk_empty(thread->node_chunks); - thread_summary(thread, all, NULL); + thread_summary(thread, all); } static void |