aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog6
-rw-r--r--camel/camel-folder-thread.c6
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