From 60ecf1a8d7c081ff65dbe6b0f833df84fa99643d Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Wed, 28 Jan 2026 11:37:06 +0100 Subject: [PATCH] refactor: DebugCount (#6753) Reviewed-by: Rasmus Karlsson Reviewed-by: Nerixyz --- CHANGELOG.md | 1 + src/common/network/NetworkPrivate.cpp | 6 +- src/common/network/NetworkPrivate.hpp | 1 + src/common/network/NetworkTask.cpp | 2 +- src/controllers/plugins/api/HTTPRequest.cpp | 6 +- src/controllers/plugins/api/HTTPRequest.hpp | 3 +- src/controllers/plugins/api/HTTPResponse.cpp | 5 - src/controllers/plugins/api/HTTPResponse.hpp | 2 +- src/messages/Image.cpp | 41 +++--- src/messages/Image.hpp | 1 + src/messages/Message.cpp | 4 +- src/messages/Message.hpp | 1 + src/messages/MessageElement.cpp | 4 +- src/messages/MessageElement.hpp | 1 + src/messages/MessageThread.cpp | 4 +- src/messages/layouts/MessageLayout.cpp | 8 +- src/messages/layouts/MessageLayoutElement.cpp | 4 +- .../liveupdates/BasicPubSubClient.hpp | 4 +- .../liveupdates/BasicPubSubManager.hpp | 10 +- src/util/DebugCount.cpp | 84 +++++------- src/util/DebugCount.hpp | 125 +++++++++++++++--- src/widgets/AttachedWindow.cpp | 4 +- src/widgets/BaseWindow.cpp | 4 +- src/widgets/helper/MessageView.cpp | 1 + tests/src/MessageLayout.cpp | 1 + 25 files changed, 198 insertions(+), 129 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b54a76f2..f2906155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,7 @@ - Dev: Updated prettier version to 3.8.1 and migrated away from using an unmaintained GH Action, instead relying on `npx`. (#6769) - Dev: Updated `miniaudio` to 0.11.24. (#6754) - Dev: Remove unused `reloadChannelAndSubscriberEmotes`. (#6756) +- Dev: Refactored `DebugCount`. (#6753) - Dev: Moved `PluginMeta` to its own file. (#6757) ## 2.5.4 diff --git a/src/common/network/NetworkPrivate.cpp b/src/common/network/NetworkPrivate.cpp index aa048708..f886a6b5 100644 --- a/src/common/network/NetworkPrivate.cpp +++ b/src/common/network/NetworkPrivate.cpp @@ -48,7 +48,7 @@ void runCallback(bool concurrent, auto &&fn) void loadUncached(std::shared_ptr &&data) { - DebugCount::increase("http request started"); + DebugCount::increase(DebugObject::HTTPRequestStarted); NetworkRequester requester; auto *worker = new NetworkTask(std::move(data)); @@ -105,12 +105,12 @@ namespace chatterino { NetworkData::NetworkData() { - DebugCount::increase("NetworkData"); + DebugCount::increase(DebugObject::NetworkData); } NetworkData::~NetworkData() { - DebugCount::decrease("NetworkData"); + DebugCount::decrease(DebugObject::NetworkData); } QString NetworkData::getHash() diff --git a/src/common/network/NetworkPrivate.hpp b/src/common/network/NetworkPrivate.hpp index 594a1302..14491031 100644 --- a/src/common/network/NetworkPrivate.hpp +++ b/src/common/network/NetworkPrivate.hpp @@ -6,6 +6,7 @@ #include "common/Common.hpp" #include "common/network/NetworkCommon.hpp" +#include "util/DebugCount.hpp" #include #include diff --git a/src/common/network/NetworkTask.cpp b/src/common/network/NetworkTask.cpp index 3c6d9c00..ddeecb14 100644 --- a/src/common/network/NetworkTask.cpp +++ b/src/common/network/NetworkTask.cpp @@ -243,7 +243,7 @@ void NetworkTask::finished() this->writeToCache(bytes); } - DebugCount::increase("http request success"); + DebugCount::increase(DebugObject::HTTPRequestSuccess); this->logReply(); this->data_->emitSuccess({reply->error(), status, bytes}); this->data_->emitFinally(); diff --git a/src/controllers/plugins/api/HTTPRequest.cpp b/src/controllers/plugins/api/HTTPRequest.cpp index c0bcc4fe..756a9809 100644 --- a/src/controllers/plugins/api/HTTPRequest.cpp +++ b/src/controllers/plugins/api/HTTPRequest.cpp @@ -182,14 +182,12 @@ HTTPRequest::HTTPRequest(HTTPRequest::ConstructorAccessTag /*ignored*/, NetworkRequest req) : req_(std::move(req)) { - DebugCount::increase("lua::api::HTTPRequest"); + DebugCount::increase(DebugObject::LuaHTTPRequest); } HTTPRequest::~HTTPRequest() { - DebugCount::decrease("lua::api::HTTPRequest"); - // We might leak a Lua function or two here if the request isn't executed - // but that's better than accessing a possibly invalid lua_State pointer. + DebugCount::decrease(DebugObject::LuaHTTPRequest); } QString HTTPRequest::to_string() diff --git a/src/controllers/plugins/api/HTTPRequest.hpp b/src/controllers/plugins/api/HTTPRequest.hpp index 6b95a79f..5c813aaa 100644 --- a/src/controllers/plugins/api/HTTPRequest.hpp +++ b/src/controllers/plugins/api/HTTPRequest.hpp @@ -6,6 +6,7 @@ #ifdef CHATTERINO_HAVE_PLUGINS # include "common/network/NetworkRequest.hpp" # include "controllers/plugins/LuaUtilities.hpp" +# include "util/DebugCount.hpp" # include # include @@ -34,7 +35,7 @@ class HTTPRequest : public std::enable_shared_from_this public: HTTPRequest(HTTPRequest::ConstructorAccessTag, NetworkRequest req); - HTTPRequest(HTTPRequest &&other) = default; + HTTPRequest(HTTPRequest &&other) = default; // TODO: this breaks DebugCount HTTPRequest &operator=(HTTPRequest &&) = default; HTTPRequest &operator=(HTTPRequest &) = delete; HTTPRequest(const HTTPRequest &other) = delete; diff --git a/src/controllers/plugins/api/HTTPResponse.cpp b/src/controllers/plugins/api/HTTPResponse.cpp index f93b34b8..d71b83cb 100644 --- a/src/controllers/plugins/api/HTTPResponse.cpp +++ b/src/controllers/plugins/api/HTTPResponse.cpp @@ -33,11 +33,6 @@ void HTTPResponse::createUserType(sol::table &c2) HTTPResponse::HTTPResponse(NetworkResult res) : result_(std::move(res)) { - DebugCount::increase("lua::api::HTTPResponse"); -} -HTTPResponse::~HTTPResponse() -{ - DebugCount::decrease("lua::api::HTTPResponse"); } QByteArray HTTPResponse::data() diff --git a/src/controllers/plugins/api/HTTPResponse.hpp b/src/controllers/plugins/api/HTTPResponse.hpp index 2850a3f9..941c2d17 100644 --- a/src/controllers/plugins/api/HTTPResponse.hpp +++ b/src/controllers/plugins/api/HTTPResponse.hpp @@ -31,7 +31,7 @@ public: HTTPResponse &operator=(HTTPResponse &&) = default; HTTPResponse &operator=(HTTPResponse &) = delete; HTTPResponse(const HTTPResponse &other) = delete; - ~HTTPResponse(); + ~HTTPResponse() = default; private: static void createUserType(sol::table &c2); diff --git a/src/messages/Image.cpp b/src/messages/Image.cpp index 0fad76e3..1ac3932e 100644 --- a/src/messages/Image.cpp +++ b/src/messages/Image.cpp @@ -36,7 +36,7 @@ namespace chatterino::detail { Frames::Frames() { - DebugCount::increase("images"); + DebugCount::increase(DebugObject::Image); } Frames::Frames(QList &&frames) @@ -51,15 +51,15 @@ Frames::Frames(QList &&frames) return; } - DebugCount::increase("images"); + DebugCount::increase(DebugObject::Image); if (!this->empty()) { - DebugCount::increase("loaded images"); + DebugCount::increase(DebugObject::LoadedImage); } if (this->animated()) { - DebugCount::increase("animated images"); + DebugCount::increase(DebugObject::AnimatedImage); this->gifTimerConnection_ = app->getEmotes()->getGIFTimer()->signal.connect([this] { @@ -85,25 +85,25 @@ Frames::Frames(QList &&frames) this->processOffset(); } - DebugCount::increase("image bytes", this->memoryUsage()); - DebugCount::increase("image bytes (ever loaded)", this->memoryUsage()); + DebugCount::increase(DebugObject::BytesImageCurrent, this->memoryUsage()); + DebugCount::increase(DebugObject::BytesImageLoaded, this->memoryUsage()); } Frames::~Frames() { assertInGuiThread(); - DebugCount::decrease("images"); + DebugCount::decrease(DebugObject::Image); if (!this->empty()) { - DebugCount::decrease("loaded images"); + DebugCount::decrease(DebugObject::LoadedImage); } if (this->animated()) { - DebugCount::decrease("animated images"); + DebugCount::decrease(DebugObject::AnimatedImage); } - DebugCount::decrease("image bytes", this->memoryUsage()); - DebugCount::increase("image bytes (ever unloaded)", this->memoryUsage()); + DebugCount::decrease(DebugObject::BytesImageCurrent, this->memoryUsage()); + DebugCount::increase(DebugObject::BytesImageUnloaded, this->memoryUsage()); this->gifTimerConnection_.disconnect(); } @@ -156,10 +156,10 @@ void Frames::clear() assertInGuiThread(); if (!this->empty()) { - DebugCount::decrease("loaded images"); + DebugCount::decrease(DebugObject::LoadedImage); } - DebugCount::decrease("image bytes", this->memoryUsage()); - DebugCount::increase("image bytes (ever unloaded)", this->memoryUsage()); + DebugCount::decrease(DebugObject::BytesImageCurrent, this->memoryUsage()); + DebugCount::increase(DebugObject::BytesImageUnloaded, this->memoryUsage()); this->items_.clear(); this->index_ = 0; @@ -608,13 +608,6 @@ ImageExpirationPool::ImageExpirationPool() this->freeTimer_->start( std::chrono::duration_cast( IMAGE_POOL_CLEANUP_INTERVAL)); - - // configure all debug counts used by images - DebugCount::configure("image bytes", DebugCount::Flag::DataSize); - DebugCount::configure("image bytes (ever loaded)", - DebugCount::Flag::DataSize); - DebugCount::configure("image bytes (ever unloaded)", - DebugCount::Flag::DataSize); } ImageExpirationPool &ImageExpirationPool::instance() @@ -695,9 +688,9 @@ void ImageExpirationPool::freeOld() qCDebug(chatterinoImage) << "freed frame data for" << numExpired << "/" << eligible << "eligible images"; # endif - DebugCount::set("last image gc: expired", numExpired); - DebugCount::set("last image gc: eligible", eligible); - DebugCount::set("last image gc: left after gc", this->allImages_.size()); + DebugCount::set(DebugObject::LastImageGcExpired, numExpired); + DebugCount::set(DebugObject::LastImageGcEligible, eligible); + DebugCount::set(DebugObject::LastImageGcLeft, this->allImages_.size()); } #endif diff --git a/src/messages/Image.hpp b/src/messages/Image.hpp index ed1c1fcc..4d64a5c2 100644 --- a/src/messages/Image.hpp +++ b/src/messages/Image.hpp @@ -5,6 +5,7 @@ #pragma once #include "common/Aliases.hpp" +#include "util/DebugCount.hpp" #include #include diff --git a/src/messages/Message.cpp b/src/messages/Message.cpp index b18f66f7..5879d22d 100644 --- a/src/messages/Message.cpp +++ b/src/messages/Message.cpp @@ -25,12 +25,12 @@ using namespace literals; Message::Message() : parseTime(QTime::currentTime()) { - DebugCount::increase("messages"); + DebugCount::increase(DebugObject::Message); } Message::~Message() { - DebugCount::decrease("messages"); + DebugCount::decrease(DebugObject::Message); } ScrollbarHighlight Message::getScrollBarHighlight() const diff --git a/src/messages/Message.hpp b/src/messages/Message.hpp index ea466672..91cf30fd 100644 --- a/src/messages/Message.hpp +++ b/src/messages/Message.hpp @@ -6,6 +6,7 @@ #include "messages/MessageFlag.hpp" #include "providers/twitch/ChannelPointReward.hpp" +#include "util/DebugCount.hpp" #include "util/QStringHash.hpp" #include diff --git a/src/messages/MessageElement.cpp b/src/messages/MessageElement.cpp index 7f976524..ba61cf99 100644 --- a/src/messages/MessageElement.cpp +++ b/src/messages/MessageElement.cpp @@ -55,12 +55,12 @@ QSizeF getBoundingBoxSize(const std::vector &images) MessageElement::MessageElement(MessageElementFlags flags) : flags_(flags) { - DebugCount::increase("message elements"); + DebugCount::increase(DebugObject::MessageElement); } MessageElement::~MessageElement() { - DebugCount::decrease("message elements"); + DebugCount::decrease(DebugObject::MessageElement); } MessageElement *MessageElement::setLink(const Link &link) diff --git a/src/messages/MessageElement.hpp b/src/messages/MessageElement.hpp index e987a9eb..81cce04a 100644 --- a/src/messages/MessageElement.hpp +++ b/src/messages/MessageElement.hpp @@ -10,6 +10,7 @@ #include "messages/MessageColor.hpp" #include "providers/links/LinkInfo.hpp" #include "singletons/Fonts.hpp" +#include "util/DebugCount.hpp" #include #include diff --git a/src/messages/MessageThread.cpp b/src/messages/MessageThread.cpp index 992968b0..7bd5ebc4 100644 --- a/src/messages/MessageThread.cpp +++ b/src/messages/MessageThread.cpp @@ -23,12 +23,12 @@ MessageThread::MessageThread(std::shared_ptr rootMessage) : rootMessageId_(rootMessage->id) , rootMessage_(std::move(rootMessage)) { - DebugCount::increase("message threads"); + DebugCount::increase(DebugObject::MessageThread); } MessageThread::~MessageThread() { - DebugCount::decrease("message threads"); + DebugCount::decrease(DebugObject::MessageThread); } void MessageThread::addToThread(const std::shared_ptr &message) diff --git a/src/messages/layouts/MessageLayout.cpp b/src/messages/layouts/MessageLayout.cpp index cc430062..6e926c9d 100644 --- a/src/messages/layouts/MessageLayout.cpp +++ b/src/messages/layouts/MessageLayout.cpp @@ -41,12 +41,12 @@ QColor blendColors(const QColor &base, const QColor &apply) MessageLayout::MessageLayout(MessagePtr message) : message_(std::move(message)) { - DebugCount::increase("message layout"); + DebugCount::increase(DebugObject::MessageLayout); } MessageLayout::~MessageLayout() { - DebugCount::decrease("message layout"); + DebugCount::decrease(DebugObject::MessageLayout); } const Message *MessageLayout::getMessage() @@ -359,7 +359,7 @@ QPixmap *MessageLayout::ensureBuffer(QPainter &painter, qreal width, bool clear) } this->bufferValid_ = false; - DebugCount::increase("message drawing buffers"); + DebugCount::increase(DebugObject::MessageDrawingBuffer); return this->buffer_.get(); } @@ -487,7 +487,7 @@ void MessageLayout::deleteBuffer() { if (this->buffer_ != nullptr) { - DebugCount::decrease("message drawing buffers"); + DebugCount::decrease(DebugObject::MessageDrawingBuffer); this->buffer_ = nullptr; } diff --git a/src/messages/layouts/MessageLayoutElement.cpp b/src/messages/layouts/MessageLayoutElement.cpp index 7375fdcd..8cce7073 100644 --- a/src/messages/layouts/MessageLayoutElement.cpp +++ b/src/messages/layouts/MessageLayoutElement.cpp @@ -40,12 +40,12 @@ MessageLayoutElement::MessageLayoutElement(MessageElement &creator, QSizeF size) : rect_(QPointF{}, size) , creator_(creator) { - DebugCount::increase("message layout elements"); + DebugCount::increase(DebugObject::MessageLayoutElement); } MessageLayoutElement::~MessageLayoutElement() { - DebugCount::decrease("message layout elements"); + DebugCount::decrease(DebugObject::MessageLayoutElement); } MessageElement &MessageLayoutElement::getCreator() const diff --git a/src/providers/liveupdates/BasicPubSubClient.hpp b/src/providers/liveupdates/BasicPubSubClient.hpp index 96b6d70b..039d2a4f 100644 --- a/src/providers/liveupdates/BasicPubSubClient.hpp +++ b/src/providers/liveupdates/BasicPubSubClient.hpp @@ -105,7 +105,7 @@ protected: } qCDebug(chatterinoLiveupdates) << "Subscribing to" << subscription; - DebugCount::increase("LiveUpdates subscriptions"); + DebugCount::increase(DebugObject::LiveUpdatesSubscription); QByteArray encoded = static_cast(this)->encodeSubscription(subscription); @@ -126,7 +126,7 @@ protected: } qCDebug(chatterinoLiveupdates) << "Unsubscribing from" << subscription; - DebugCount::decrease("LiveUpdates subscriptions"); + DebugCount::decrease(DebugObject::LiveUpdatesSubscription); QByteArray encoded = static_cast(this)->encodeUnsubscription(subscription); diff --git a/src/providers/liveupdates/BasicPubSubManager.hpp b/src/providers/liveupdates/BasicPubSubManager.hpp index bdf1e5f4..810a8d8e 100644 --- a/src/providers/liveupdates/BasicPubSubManager.hpp +++ b/src/providers/liveupdates/BasicPubSubManager.hpp @@ -129,7 +129,7 @@ protected: this->addClient(); this->pendingSubscriptions_.emplace_back(subscription); - DebugCount::increase("LiveUpdates subscription backlog"); + DebugCount::increase(DebugObject::LiveUpdatesSubscriptionBacklog); } const std::unordered_map> &clients() const @@ -147,7 +147,7 @@ private: { assertInGuiThread(); - DebugCount::increase("LiveUpdates connections"); + DebugCount::increase(DebugObject::LiveUpdatesConnection); this->addingClient_ = false; this->diag.connectionsOpened.fetch_add(1, std::memory_order_acq_rel); @@ -173,7 +173,7 @@ private: this->pendingSubscriptions_.emplace_back(std::move(last)); break; } - DebugCount::decrease("LiveUpdates subscription backlog"); + DebugCount::decrease(DebugObject::LiveUpdatesSubscriptionBacklog); pendingSubsToTake--; } @@ -200,7 +200,7 @@ private: return; } - DebugCount::decrease("LiveUpdates connections"); + DebugCount::decrease(DebugObject::LiveUpdatesConnection); qCDebug(chatterinoLiveupdates) << "Connection" << id << "closed"; auto subs = std::move(it->second->subscriptions_); @@ -228,7 +228,7 @@ private: qCWarning(chatterinoLiveupdates) << "Retrying after" << id << "failed"; auto nSubs = subs.size(); - DebugCount::increase("LiveUpdates subscription backlog", + DebugCount::increase(DebugObject::LiveUpdatesSubscriptionBacklog, static_cast(nSubs)); this->pendingSubscriptions_.insert( this->pendingSubscriptions_.end(), diff --git a/src/util/DebugCount.cpp b/src/util/DebugCount.cpp index e9f94f60..d21da8de 100644 --- a/src/util/DebugCount.cpp +++ b/src/util/DebugCount.cpp @@ -5,11 +5,13 @@ #include "util/DebugCount.hpp" #include "common/UniqueAccess.hpp" +#include "util/QMagicEnum.hpp" +#include #include #include -#include +#include namespace { @@ -17,74 +19,51 @@ using namespace chatterino; struct Count { int64_t value = 0; - DebugCount::Flags flags = DebugCount::Flag::None; }; // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables) -UniqueAccess> COUNTS; +UniqueAccess(DebugObject::Count)>> COUNTS; + +constexpr bool isBytes(DebugObject target) +{ + switch (target) + { + default: + return false; + + case DebugObject::BytesImageCurrent: + case DebugObject::BytesImageLoaded: + case DebugObject::BytesImageUnloaded: + return true; + } +} } // namespace namespace chatterino { -void DebugCount::configure(const QString &name, Flags flags) +void DebugCount::set(DebugObject target, int64_t amount) { auto counts = COUNTS.access(); - auto it = counts->find(name); - if (it == counts->end()) - { - counts->emplace(name, Count{.flags = flags}); - } - else - { - it->second.flags = flags; - } + auto &it = counts->at(static_cast(target)); + it.value = amount; } -void DebugCount::set(const QString &name, const int64_t &amount) +void DebugCount::increase(DebugObject target, int64_t amount) { auto counts = COUNTS.access(); - auto it = counts->find(name); - if (it == counts->end()) - { - counts->emplace(name, Count{amount}); - } - else - { - it->second.value = amount; - } + auto &it = counts->at(static_cast(target)); + it.value += amount; } -void DebugCount::increase(const QString &name, const int64_t &amount) +void DebugCount::decrease(DebugObject target, int64_t amount) { auto counts = COUNTS.access(); - auto it = counts->find(name); - if (it == counts->end()) - { - counts->emplace(name, Count{amount}); - } - else - { - it->second.value += amount; - } -} - -void DebugCount::decrease(const QString &name, const int64_t &amount) -{ - auto counts = COUNTS.access(); - - auto it = counts->find(name); - if (it == counts->end()) - { - counts->emplace(name, Count{-amount}); - } - else - { - it->second.value -= amount; - } + auto &it = counts->at(static_cast(target)); + it.value -= amount; } QString DebugCount::getDebugText() @@ -94,10 +73,12 @@ QString DebugCount::getDebugText() auto counts = COUNTS.access(); QString text; - for (const auto &[key, count] : *counts) + for (size_t key = 0; key < static_cast(DebugObject::Count); key++) { + auto &count = counts->at(key); + QString formatted; - if (count.flags.has(Flag::DataSize)) + if (isBytes(static_cast(key))) { formatted = locale.formattedDataSize(count.value); } @@ -106,7 +87,8 @@ QString DebugCount::getDebugText() formatted = locale.toString(static_cast(count.value)); } - text += key % ": " % formatted % '\n'; + text += qmagicenum::enumName(static_cast(key)) % ": " % + formatted % '\n'; } return text; } diff --git a/src/util/DebugCount.hpp b/src/util/DebugCount.hpp index 70d617f7..2ac773d6 100644 --- a/src/util/DebugCount.hpp +++ b/src/util/DebugCount.hpp @@ -6,37 +6,130 @@ #include "common/FlagsEnum.hpp" +#include #include +#include + namespace chatterino { +enum class DebugObject : size_t { + // windowing + AttachedWindow, + BaseWindow, + + // live updates + LiveUpdatesSubscription, + LiveUpdatesSubscriptionBacklog, + LiveUpdatesConnection, + + // http/other networking + HTTPRequestStarted, + HTTPRequestSuccess, + NetworkData, + + // images + Image, + LoadedImage, + AnimatedImage, + BytesImageCurrent, + BytesImageLoaded, + BytesImageUnloaded, + + LastImageGcExpired, + LastImageGcEligible, + LastImageGcLeft, + + // Lua + LuaHTTPResponse, + LuaHTTPRequest, + + // Messages + MessageDrawingBuffer, + MessageElement, + MessageLayout, + MessageLayoutElement, + MessageThread, + Message, + + Count, +}; + class DebugCount { public: - enum class Flag : uint16_t { - None = 0, - /// The value is a data size in bytes - DataSize = 1 << 0, - }; - using Flags = FlagsEnum; + static void set(DebugObject target, int64_t amount); - static void configure(const QString &name, Flags flags); - - static void set(const QString &name, const int64_t &amount); - - static void increase(const QString &name, const int64_t &amount); - static void increase(const QString &name) + static void increase(DebugObject target, int64_t amount); + static void increase(DebugObject target) { - DebugCount::increase(name, 1); + DebugCount::increase(target, 1); } - static void decrease(const QString &name, const int64_t &amount); - static void decrease(const QString &name) + static void decrease(DebugObject target, int64_t amount); + static void decrease(DebugObject target) { - DebugCount::decrease(name, 1); + DebugCount::decrease(target, 1); } static QString getDebugText(); }; } // namespace chatterino + +template <> +constexpr magic_enum::customize::customize_t + magic_enum::customize::enum_name( + chatterino::DebugObject value) noexcept +{ + using chatterino::DebugObject; + switch (value) + { + // class names + case chatterino::DebugObject::AttachedWindow: + case chatterino::DebugObject::BaseWindow: + case chatterino::DebugObject::NetworkData: + case chatterino::DebugObject::MessageElement: + case chatterino::DebugObject::MessageLayout: + case chatterino::DebugObject::MessageLayoutElement: + case chatterino::DebugObject::MessageThread: + case chatterino::DebugObject::Message: + default: + return default_tag; + + case chatterino::DebugObject::AnimatedImage: + return "animated images"; + case chatterino::DebugObject::LiveUpdatesSubscription: + return "LiveUpdates subscriptions"; + case chatterino::DebugObject::LiveUpdatesSubscriptionBacklog: + return "LiveUpdates subscription backlog"; + case chatterino::DebugObject::LiveUpdatesConnection: + return "LiveUpdates connections"; + case chatterino::DebugObject::HTTPRequestStarted: + return "http requests started"; + case chatterino::DebugObject::HTTPRequestSuccess: + return "http requests succeeded"; + case chatterino::DebugObject::Image: + return "images"; + case chatterino::DebugObject::LoadedImage: + return "loaded images"; + case chatterino::DebugObject::BytesImageCurrent: + return "image bytes"; + case chatterino::DebugObject::BytesImageLoaded: + return "image bytes (ever loaded)"; + case chatterino::DebugObject::BytesImageUnloaded: + return "image bytes (ever unloaded)"; + case chatterino::DebugObject::LastImageGcExpired: + return "last image gc: expired"; + case chatterino::DebugObject::LastImageGcEligible: + return "last image gc: eligible"; + case chatterino::DebugObject::LastImageGcLeft: + return "last image gc: left after gc"; + case chatterino::DebugObject::LuaHTTPResponse: + return "lua::api::HTTPResponse"; + case chatterino::DebugObject::LuaHTTPRequest: + return "lua::api::HTTPRequest"; + case chatterino::DebugObject::MessageDrawingBuffer: + return "message drawing buffers"; + } +} diff --git a/src/widgets/AttachedWindow.cpp b/src/widgets/AttachedWindow.cpp index f5e20133..61c55d34 100644 --- a/src/widgets/AttachedWindow.cpp +++ b/src/widgets/AttachedWindow.cpp @@ -61,7 +61,7 @@ AttachedWindow::AttachedWindow(void *_target) split->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding); layout->addWidget(split); - DebugCount::increase("attached window"); + DebugCount::increase(DebugObject::AttachedWindow); } AttachedWindow::~AttachedWindow() @@ -75,7 +75,7 @@ AttachedWindow::~AttachedWindow() } } - DebugCount::decrease("attached window"); + DebugCount::decrease(DebugObject::AttachedWindow); } AttachedWindow *AttachedWindow::get(void *target, const GetArgs &args) diff --git a/src/widgets/BaseWindow.cpp b/src/widgets/BaseWindow.cpp index 4a622e83..65117011 100644 --- a/src/widgets/BaseWindow.cpp +++ b/src/widgets/BaseWindow.cpp @@ -272,12 +272,12 @@ BaseWindow::BaseWindow(FlagsEnum _flags, QWidget *parent) #endif this->themeChangedEvent(); - DebugCount::increase("BaseWindow"); + DebugCount::increase(DebugObject::BaseWindow); } BaseWindow::~BaseWindow() { - DebugCount::decrease("BaseWindow"); + DebugCount::decrease(DebugObject::BaseWindow); } void BaseWindow::setInitialBounds(QRect bounds, widgets::BoundsChecking mode) diff --git a/src/widgets/helper/MessageView.cpp b/src/widgets/helper/MessageView.cpp index 9441082c..d20224c5 100644 --- a/src/widgets/helper/MessageView.cpp +++ b/src/widgets/helper/MessageView.cpp @@ -6,6 +6,7 @@ #include "Application.hpp" #include "messages/layouts/MessageLayout.hpp" +#include "messages/layouts/MessageLayoutElement.hpp" #include "messages/MessageElement.hpp" #include "messages/Selection.hpp" #include "providers/colors/ColorProvider.hpp" diff --git a/tests/src/MessageLayout.cpp b/tests/src/MessageLayout.cpp index 318924f1..4cc9cbef 100644 --- a/tests/src/MessageLayout.cpp +++ b/tests/src/MessageLayout.cpp @@ -7,6 +7,7 @@ #include "Application.hpp" #include "controllers/accounts/AccountController.hpp" #include "messages/layouts/MessageLayoutContext.hpp" +#include "messages/layouts/MessageLayoutElement.hpp" #include "messages/MessageBuilder.hpp" #include "messages/MessageElement.hpp" #include "mocks/BaseApplication.hpp"