cabana: fix segfault on descending sort (#26995)

old-commit-hash: ef89ec3eb095df8604d8c66009413444b634b1e6
This commit is contained in:
Willem Melching
2023-01-18 19:31:40 +01:00
committed by GitHub
parent 5a74a8db6d
commit 7ad0b07b7b
+9 -6
View File
@@ -96,8 +96,9 @@ void MessageListModel::sortMessages() {
beginResetModel();
if (sort_column == 0) {
std::sort(msgs.begin(), msgs.end(), [this](auto &l, auto &r) {
bool ret = std::pair{msgName(l), l} < std::pair{msgName(r), r};
return sort_order == Qt::AscendingOrder ? ret : !ret;
auto ll = std::pair{msgName(l), l};
auto rr = std::pair{msgName(r), r};
return sort_order == Qt::AscendingOrder ? ll < rr : ll > rr;
});
} else if (sort_column == 1) {
std::sort(msgs.begin(), msgs.end(), [this](auto &l, auto &r) {
@@ -105,13 +106,15 @@ void MessageListModel::sortMessages() {
});
} else if (sort_column == 2) {
std::sort(msgs.begin(), msgs.end(), [this](auto &l, auto &r) {
bool ret = std::pair{can->lastMessage(l).freq, l} < std::pair{can->lastMessage(r).freq, r};
return sort_order == Qt::AscendingOrder ? ret : !ret;
auto ll = std::pair{can->lastMessage(l).freq, l};
auto rr = std::pair{can->lastMessage(r).freq, r};
return sort_order == Qt::AscendingOrder ? ll < rr : ll > rr;
});
} else if (sort_column == 3) {
std::sort(msgs.begin(), msgs.end(), [this](auto &l, auto &r) {
bool ret = std::pair{can->lastMessage(l).count, l} < std::pair{can->lastMessage(r).count, r};
return sort_order == Qt::AscendingOrder ? ret : !ret;
auto ll = std::pair{can->lastMessage(l).count, l};
auto rr = std::pair{can->lastMessage(r).count, r};
return sort_order == Qt::AscendingOrder ? ll < rr : ll > rr;
});
}
endResetModel();