aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Ewing <lewing@ximian.com>2003-06-18 23:13:12 +0800
committerLarry Ewing <lewing@src.gnome.org>2003-06-18 23:13:12 +0800
commitb48b984e101d7da85bcf1d808794fa95a7699208 (patch)
tree31e7e22db61f51b1bb2d33f7b34c4ced06cb4a98
parent210029e16630bee1690ff1781385f3b8dbe3c38b (diff)
downloadgsoc2013-evolution-b48b984e101d7da85bcf1d808794fa95a7699208.tar.gz
gsoc2013-evolution-b48b984e101d7da85bcf1d808794fa95a7699208.tar.zst
gsoc2013-evolution-b48b984e101d7da85bcf1d808794fa95a7699208.zip
don't leak the summary when reloading it. Fixes a very large leak.
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. svn path=/trunk/; revision=21465
-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