client: Fix an issue with redirection in MessageFilter
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 30 May 2021 14:23:14 +0000 (16:23 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 30 May 2021 15:26:36 +0000 (17:26 +0200)
Temporarily enabling the shadow warning unearthed an issue in 13 year
old code. I'm not quite sure if this really caused problems in practice,
but it clearly seems wrong to keep the invalid BufferId in the outer
scope after fixing it in the inner scope, so fix it.

src/client/messagefilter.cpp

index 6382aca..b4082e6 100644 (file)
@@ -185,7 +185,7 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex& sourcePar
         if (redirectionTarget & BufferSettings::CurrentBuffer && !(flags & Message::Backlog)) {
             BufferId redirectedTo = sourceModel()->data(sourceIdx, MessageModel::RedirectedToRole).value<BufferId>();
             if (!redirectedTo.isValid()) {
         if (redirectionTarget & BufferSettings::CurrentBuffer && !(flags & Message::Backlog)) {
             BufferId redirectedTo = sourceModel()->data(sourceIdx, MessageModel::RedirectedToRole).value<BufferId>();
             if (!redirectedTo.isValid()) {
-                BufferId redirectedTo = Client::bufferModel()->currentIndex().data(NetworkModel::BufferIdRole).value<BufferId>();
+                redirectedTo = Client::bufferModel()->currentIndex().data(NetworkModel::BufferIdRole).value<BufferId>();
                 if (redirectedTo.isValid())
                     sourceModel()->setData(sourceIdx, QVariant::fromValue(redirectedTo), MessageModel::RedirectedToRole);
             }
                 if (redirectedTo.isValid())
                     sourceModel()->setData(sourceIdx, QVariant::fromValue(redirectedTo), MessageModel::RedirectedToRole);
             }