From 41e2de1738ec3ab56b72d1a4bf30acc31e45b3ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Tue, 4 Jul 2023 09:17:02 -0400
Subject: [PATCH] conversation_module: avoid useless removeRepository if
 already erased

Do not call removeRepository/saveConvInfos if conversation is already
erased.

Change-Id: I8f7907819cd76f5e9dd2f0f484d70ab850282108
---
 src/jamidht/conversation_module.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 623db0a95b..8919f1831d 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -1933,12 +1933,18 @@ ConversationModule::onSyncData(const SyncMsg& msg,
             auto& ci = pimpl_->convInfos_;
             auto itConv = ci.find(convId);
             if (itConv != ci.end()) {
-                itConv->second.removed = std::time(nullptr);
-                if (convInfo.erased) {
+                auto update = false;
+                if (!itConv->second.removed) {
+                    update = true;
+                    itConv->second.removed = std::time(nullptr);
+                }
+                if (convInfo.erased && !itConv->second.erased) {
                     itConv->second.erased = std::time(nullptr);
                     pimpl_->saveConvInfos();
                     lk.unlock();
                     pimpl_->removeRepository(convId, false);
+                } else if (update) {
+                    pimpl_->saveConvInfos();
                 }
             }
         }
-- 
GitLab