[geary: 6/13] Ensure conversation set actually contains conversation before attempting to remove it.



commit 61f122c2c2ce234910640c5c47dd5fe63a8f5380
Author: James Magahern <james magahern com>
Date:   Mon Oct 15 09:10:44 2018 -0700

    Ensure conversation set actually contains conversation before attempting to remove it.

 src/engine/app/app-conversation-monitor.vala | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/src/engine/app/app-conversation-monitor.vala b/src/engine/app/app-conversation-monitor.vala
index 93147e91..42b65aad 100644
--- a/src/engine/app/app-conversation-monitor.vala
+++ b/src/engine/app/app-conversation-monitor.vala
@@ -870,7 +870,12 @@ public class Geary.App.ConversationMonitor : BaseObject {
                     "Flagging email %s for deletion evaporates conversation %s", 
                     id.to_string(), conversation.to_string());
                 
-                this.conversations.remove_conversation(conversation);
+                // Flags may have changed on a conversation that was already removed from this
+                // conversation set.
+                if (this.conversations.read_only_view.contains(conversation)) {
+                    this.conversations.remove_conversation(conversation);
+                }
+                
                 removed_conversations.add(conversation);
             }
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]