If the message info for an expunged message is NULL, then just break out -
authorJeffrey Stedfast <fejj@ximian.com>
Sun, 15 Jul 2001 00:57:09 +0000 (00:57 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Sun, 15 Jul 2001 00:57:09 +0000 (00:57 +0000)
2001-07-14  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
If the message info for an expunged message is NULL, then just
break out - maybe a message was expunged that we were never
notified even existed?

camel/ChangeLog
camel/providers/imap/camel-imap-folder.c

index 88fab1e..7e8e4f0 100644 (file)
@@ -1,3 +1,10 @@
+2001-07-14  Jeffrey Stedfast  <fejj@ximian.com>
+
+       * providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
+       If the message info for an expunged message is NULL, then just
+       break out - maybe a message was expunged that we were never
+       notified even existed?
+
 2001-07-13  Jeffrey Stedfast  <fejj@ximian.com>
 
        * camel-mime-utils.c (rfc2047_decode_word): Added a hack to
index 1d119cf..a6953c5 100644 (file)
@@ -1723,6 +1723,12 @@ camel_imap_folder_changed (CamelFolder *folder, int exists,
                for (i = 0; i < expunged->len; i++) {
                        id = g_array_index (expunged, int, i);
                        info = camel_folder_summary_index (folder->summary, id - 1);
+                       if (info == NULL) {
+                               /* FIXME: danw: does this mean that the summary is corrupt? */
+                               /* I guess a message that we never retrieved got expunged? */
+                               break;
+                       }
+                       
                        camel_folder_change_info_remove_uid (changes, camel_message_info_uid (info));
                        CAMEL_IMAP_FOLDER_LOCK (imap_folder, cache_lock);
                        camel_imap_message_cache_remove (imap_folder->cache, camel_message_info_uid (info));