From e49d8444dc5a9c038dd4048db09634232843b833 Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Wed, 13 Sep 2023 12:19:01 +0200 Subject: [PATCH] QDBusArgumentPrivate: Disable copy and move, make constructor protected Disable copy and move for the class because it is polymorphic. Make the constructor protected because instances of this class are not supposed to be created directly. Mark drived classes final. Change-Id: Ia6f2d640f3642ad4a6ecb3830fba152155e237b3 Reviewed-by: Thiago Macieira --- src/dbus/qdbusargument_p.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/dbus/qdbusargument_p.h b/src/dbus/qdbusargument_p.h index 0c7641247f..d9a7382742 100644 --- a/src/dbus/qdbusargument_p.h +++ b/src/dbus/qdbusargument_p.h @@ -34,14 +34,10 @@ class QDBusMarshaller; class QDBusDemarshaller; class QDBusArgumentPrivate { + Q_DISABLE_COPY_MOVE(QDBusArgumentPrivate) public: enum class Direction { Marshalling, Demarshalling }; - explicit QDBusArgumentPrivate(Direction direction, - QDBusConnection::ConnectionCapabilities flags = {}) - : capabilities(flags), direction(direction) - { - } virtual ~QDBusArgumentPrivate(); static bool checkRead(QDBusArgumentPrivate *d); @@ -64,9 +60,16 @@ public: QAtomicInt ref = 1; QDBusConnection::ConnectionCapabilities capabilities; Direction direction; + +protected: + explicit QDBusArgumentPrivate(Direction direction, + QDBusConnection::ConnectionCapabilities flags = {}) + : capabilities(flags), direction(direction) + { + } }; -class QDBusMarshaller: public QDBusArgumentPrivate +class QDBusMarshaller final : public QDBusArgumentPrivate { public: explicit QDBusMarshaller(QDBusConnection::ConnectionCapabilities flags = {}) @@ -125,7 +128,7 @@ private: Q_DISABLE_COPY_MOVE(QDBusMarshaller) }; -class QDBusDemarshaller: public QDBusArgumentPrivate +class QDBusDemarshaller final : public QDBusArgumentPrivate { public: explicit QDBusDemarshaller(QDBusConnection::ConnectionCapabilities flags = {})