diff --git a/src/channel.hpp b/src/channel.hpp index 940f0d907..f7993c7f4 100644 --- a/src/channel.hpp +++ b/src/channel.hpp @@ -59,6 +59,6 @@ private: messages::LimitedQueue messages; }; -typedef std::shared_ptr ChannelPtr; +using ChannelPtr = std::shared_ptr; } // namespace chatterino diff --git a/src/providers/twitch/twitchchannel.cpp b/src/providers/twitch/twitchchannel.cpp index 049566a33..61ae939a1 100644 --- a/src/providers/twitch/twitchchannel.cpp +++ b/src/providers/twitch/twitchchannel.cpp @@ -265,26 +265,30 @@ void TwitchChannel::fetchRecentMessages() return; } - TwitchChannel *channel = dynamic_cast(shared.get()); + auto channel = dynamic_cast(shared.get()); + assert(channel != nullptr); + static auto readConnection = channel->readConnecetion; - auto msgArray = obj.value("messages").toArray(); - if (msgArray.size() > 0) { - std::vector messages; - - for (int i = 0; i < msgArray.size(); i++) { - QByteArray content = msgArray[i].toString().toUtf8(); - auto msg = Communi::IrcMessage::fromData(content, readConnection); - auto privMsg = static_cast(msg); - - messages::MessageParseArgs args; - twitch::TwitchMessageBuilder builder(channel, privMsg, args); - if (!builder.isIgnored()) { - messages.push_back(builder.build()); - } - } - channel->addMessagesAtStart(messages); + QJsonArray msgArray = obj.value("messages").toArray(); + if (msgArray.empty()) { + return; } + + std::vector messages; + + for (const QJsonValueRef _msg : msgArray) { + QByteArray content = _msg.toString().toUtf8(); + auto msg = Communi::IrcMessage::fromData(content, readConnection); + auto privMsg = static_cast(msg); + + messages::MessageParseArgs args; + twitch::TwitchMessageBuilder builder(channel, privMsg, args); + if (!builder.isIgnored()) { + messages.push_back(builder.build()); + } + } + channel->addMessagesAtStart(messages); }); } diff --git a/src/providers/twitch/twitchchannel.hpp b/src/providers/twitch/twitchchannel.hpp index 26763bb99..5cc5c6499 100644 --- a/src/providers/twitch/twitchchannel.hpp +++ b/src/providers/twitch/twitchchannel.hpp @@ -20,7 +20,7 @@ class TwitchChannel final : public Channel QTimer *chattersListTimer; public: - ~TwitchChannel(); + ~TwitchChannel() final; void reloadChannelEmotes();