aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@helixcode.com>2000-07-26 03:35:08 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2000-07-26 03:35:08 +0800
commit28288cc95b02571c9ede385411392d61abd7d409 (patch)
treebae2e5ac228698011163b73c6d2bdeb0b69b9eaf /camel/providers
parentbe392a44144c4c4a1083d04c6ad948d4d63eb28e (diff)
downloadgsoc2013-evolution-28288cc95b02571c9ede385411392d61abd7d409.tar.gz
gsoc2013-evolution-28288cc95b02571c9ede385411392d61abd7d409.tar.zst
gsoc2013-evolution-28288cc95b02571c9ede385411392d61abd7d409.zip
Fixed the real problem that Peter was running into.
2000-07-25 Jeffrey Stedfast <fejj@helixcode.com> * providers/imap/camel-imap-folder.c (imap_summary_free): Fixed the real problem that Peter was running into. svn path=/trunk/; revision=4321
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-folder.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 62ced1ff1d..a201c5360d 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -197,15 +197,16 @@ camel_imap_folder_new (CamelStore *parent, char *folder_name, CamelException *ex
}
static void
-imap_summary_free (GPtrArray *summary)
+imap_summary_free (GPtrArray **summary)
{
CamelMessageInfo *info;
+ GPtrArray *array = *summary;
gint i, max;
- if (summary) {
- max = summary->len;
+ if (array) {
+ max = array->len;
for (i = 0; i < max; i++) {
- info = g_ptr_array_index (summary, i);
+ info = g_ptr_array_index (array, i);
g_free (info->subject);
g_free (info->from);
g_free (info->to);
@@ -217,8 +218,8 @@ imap_summary_free (GPtrArray *summary)
info = NULL;
}
- g_ptr_array_free (summary, TRUE);
- summary = NULL;
+ g_ptr_array_free (array, TRUE);
+ *summary = NULL;
}
}
@@ -229,7 +230,7 @@ imap_finalize (GtkObject *object)
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (object);
gint max, i;
- imap_summary_free (imap_folder->summary);
+ imap_summary_free (&imap_folder->summary);
if (imap_folder->lsub) {
max = imap_folder->lsub->len;
@@ -361,8 +362,7 @@ imap_expunge (CamelFolder *folder, CamelException *ex)
/* FIXME: maybe remove the appropriate messages from the summary
so we don't need to refetch the entire summary? */
- imap_summary_free (imap_folder->summary);
- imap_folder->summary = NULL;
+ imap_summary_free (&imap_folder->summary);
camel_imap_folder_changed (folder, -1, ex);
}
@@ -995,7 +995,7 @@ imap_get_summary_internal (CamelFolder *folder, CamelException *ex)
switch (num) {
case 0:
/* clean up any previous summary data */
- imap_summary_free (imap_folder->summary);
+ imap_summary_free (&imap_folder->summary);
imap_folder->summary = g_ptr_array_new ();
@@ -1163,7 +1163,7 @@ imap_get_summary_internal (CamelFolder *folder, CamelException *ex)
g_ptr_array_free (headers, TRUE);
/* clean up any previous summary data */
- imap_summary_free (imap_folder->summary);
+ imap_summary_free (&imap_folder->summary);
imap_folder->summary = summary;