From afb4e244b0554562c7904fa641114a8d1dd1b69f Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 11 Jan 2023 09:59:25 +0100 Subject: [PATCH] QPermission: unexport, make fully inline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Non-polymorphic classes should not be exported wholesale, because MSVC exports inline API in such classes, too, which has caused numerous problems over the years. Inline the last two remaining out-of-line functions, as they're trivial. Pick-to: 6.5 Change-Id: Ibc415b840b93a7350683e02433108270e1bd6bfd Reviewed-by: Qt CI Bot Reviewed-by: Tor Arne Vestbø --- src/corelib/kernel/qpermissions.cpp | 10 ++-------- src/corelib/kernel/qpermissions.h | 8 ++++---- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/corelib/kernel/qpermissions.cpp b/src/corelib/kernel/qpermissions.cpp index 8c8393d848a..6b1523a7c5b 100644 --- a/src/corelib/kernel/qpermissions.cpp +++ b/src/corelib/kernel/qpermissions.cpp @@ -247,20 +247,14 @@ Q_LOGGING_CATEGORY(lcPermissions, "qt.permissions", QtWarningMsg); */ /*! + \fn Qt::PermissionStatus QPermission::status() const Returns the status of the permission. */ -Qt::PermissionStatus QPermission::status() const -{ - return m_status; -} /*! + \fn QMetaType QPermission::type() const Returns the type of the permission. */ -QMetaType QPermission::type() const -{ - return m_data.metaType(); -} #define QT_DEFINE_PERMISSION_SPECIAL_FUNCTIONS(ClassName) \ ClassName::ClassName() : d(new ClassName##Private) {} \ diff --git a/src/corelib/kernel/qpermissions.h b/src/corelib/kernel/qpermissions.h index 59ddae1f589..469403587b6 100644 --- a/src/corelib/kernel/qpermissions.h +++ b/src/corelib/kernel/qpermissions.h @@ -29,9 +29,9 @@ class QDebug; struct QMetaObject; class QCoreApplication; -class Q_CORE_EXPORT QPermission +class QPermission { - Q_GADGET + Q_GADGET_EXPORT(Q_CORE_EXPORT) template struct is_permission : public std::false_type {}; @@ -50,9 +50,9 @@ public: QPermission(const T &t) : m_data(QVariant::fromValue(t)) {} #endif - Qt::PermissionStatus status() const; + Qt::PermissionStatus status() const { return m_status; } - QMetaType type() const; + QMetaType type() const { return m_data.metaType(); } #ifdef Q_QDOC template