From ce3459e2490b32ee25fa2857a7a9f20741128a44 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Fri, 3 May 2024 00:40:41 +0400 Subject: [PATCH] Don't rely on TWidget using QObjectPrivate for Qt version check --- ui/rp_widget.cpp | 3 --- ui/text/text_renderer.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ui/rp_widget.cpp b/ui/rp_widget.cpp index 41b24bc..0b57704 100644 --- a/ui/rp_widget.cpp +++ b/ui/rp_widget.cpp @@ -15,9 +15,6 @@ #include #include -// Patching out this code without patching out all other private API usage -// and the Qt::{Core,Gui,Widgets}Private cmake dependency is asking -// for memory corruption class TWidgetPrivate : public QWidgetPrivate { public: #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0) diff --git a/ui/text/text_renderer.cpp b/ui/text/text_renderer.cpp index 58e72bd..397c22a 100644 --- a/ui/text/text_renderer.cpp +++ b/ui/text/text_renderer.cpp @@ -156,6 +156,12 @@ bool Distinct(FixedRange a, FixedRange b) { Renderer::Renderer(const Ui::Text::String &t) : _t(&t) , _spoiler(_t->_extended ? _t->_extended->spoiler.get() : nullptr) { + [[maybe_unused]] static const auto Once = [] { + // Running with a Qt version other than the one built upon is + // dangerous due to excessive private API usage in this class + Assert(QLatin1String(qVersion()) == QLatin1String(QT_VERSION_STR)); + return true; + }(); } Renderer::~Renderer() {