aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/mbox
diff options
context:
space:
mode:
authorNotZed <NotZed@HelixCode.com>2000-05-05 16:47:02 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-05-05 16:47:02 +0800
commitaa7851f1f03b4dbcf5b464b535ae71c50536f430 (patch)
treecc463f8ae82075b753c4ac93f246c3b7db372771 /camel/providers/mbox
parent022c7ab1f28ac677a60cbffa54be28e3272f1c2d (diff)
downloadgsoc2013-evolution-aa7851f1f03b4dbcf5b464b535ae71c50536f430.tar.gz
gsoc2013-evolution-aa7851f1f03b4dbcf5b464b535ae71c50536f430.tar.zst
gsoc2013-evolution-aa7851f1f03b4dbcf5b464b535ae71c50536f430.zip
And same here ...
2000-05-05 NotZed <NotZed@HelixCode.com> * camel-folder-summary.c: And same here ... * camel-mime-utils.c: Defined out some memory profiling stuff I left there by mistake. * camel-mime-parser.c (folder_scan_content): Apply the fix from the header scanner to here too. (folder_scan_header): Only check for end of header if we have space for it (didn't end the read with a newline) (folder_scan_header): inptr is the only real thing we need registerised for performance. Try to help the compiler be smart about it .. (folder_scan_header): Simplified the save header case a tad. Commented out some memory profiling stuff. svn path=/trunk/; revision=2811
Diffstat (limited to 'camel/providers/mbox')
-rw-r--r--camel/providers/mbox/camel-mbox-summary.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/camel/providers/mbox/camel-mbox-summary.c b/camel/providers/mbox/camel-mbox-summary.c
index 35b7945e49..fedd9f6411 100644
--- a/camel/providers/mbox/camel-mbox-summary.c
+++ b/camel/providers/mbox/camel-mbox-summary.c
@@ -1056,11 +1056,19 @@ int camel_mbox_summary_check(CamelMboxSummary *s)
static void camel_mbox_summary_add(CamelMboxSummary *s, CamelMboxMessageInfo *info)
{
+ CamelMboxMessageInfo *old;
+
+retry:
if (info->info.uid == NULL) {
info->info.uid = g_strdup_printf("%u", s->nextuid++);
}
- if (g_hash_table_lookup(s->message_uid, info->info.uid)) {
- g_error("Trying to insert message with clashing uid's");
+ if (( old = g_hash_table_lookup(s->message_uid, info->info.uid) )) {
+#warning do something fatal with a fatal error.
+ /* err, once i work out why it keeps getting called so often */
+ d(g_warning("Trying to insert message with clashing uid's new %s exist %s", info->info.uid, old->info.uid));
+ g_free(info->info.uid);
+ info->info.uid = NULL;
+ goto retry;
}
d(printf("adding %s\n", info->info.uid));
g_ptr_array_add(s->messages, info);