From 264a85b9e41321ad61f0adf5efa0cd0faa2cf263 Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Sat, 20 Feb 2021 02:38:41 +0100
Subject: [PATCH] Avoid some copies when sorting the room list

---
 src/RoomInfoListItem.h | 2 ++
 src/RoomList.cpp       | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/RoomInfoListItem.h b/src/RoomInfoListItem.h
index baa8b98ba..c2826f6ff 100644
--- a/src/RoomInfoListItem.h
+++ b/src/RoomInfoListItem.h
@@ -217,4 +217,6 @@ private:
 
         QColor bubbleBgColor_;
         QColor bubbleFgColor_;
+
+        friend struct room_sort;
 };
diff --git a/src/RoomList.cpp b/src/RoomList.cpp
index 67a7ac400..10042c945 100644
--- a/src/RoomList.cpp
+++ b/src/RoomList.cpp
@@ -353,8 +353,8 @@ RoomList::updateRoomDescription(const QString &roomid, const DescInfo &info)
 
 struct room_sort
 {
-        bool operator()(const QSharedPointer<RoomInfoListItem> a,
-                        const QSharedPointer<RoomInfoListItem> b) const
+        bool operator()(const QSharedPointer<RoomInfoListItem> &a,
+                        const QSharedPointer<RoomInfoListItem> &b) const
         {
                 // Sort by "importance" (i.e. invites before mentions before
                 // notifs before new events before old events), then secondly
@@ -370,9 +370,9 @@ struct room_sort
                 // Now sort by recency
                 // Zero if empty, otherwise the time that the event occured
                 const uint64_t a_recency =
-                  a->lastMessageInfo().userid.isEmpty() ? 0 : a->lastMessageInfo().timestamp;
+                  a->lastMsgInfo_.userid.isEmpty() ? 0 : a->lastMsgInfo_.timestamp;
                 const uint64_t b_recency =
-                  b->lastMessageInfo().userid.isEmpty() ? 0 : b->lastMessageInfo().timestamp;
+                  b->lastMsgInfo_.userid.isEmpty() ? 0 : b->lastMsgInfo_.timestamp;
                 return a_recency > b_recency;
         }
 };
-- 
GitLab