diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/painting/qcolorspace.cpp | 1 | ||||
-rw-r--r-- | src/gui/painting/qcolortransform.cpp | 14 | ||||
-rw-r--r-- | src/gui/painting/qcolortransform.h | 10 |
3 files changed, 8 insertions, 17 deletions
diff --git a/src/gui/painting/qcolorspace.cpp b/src/gui/painting/qcolorspace.cpp index 5657a90b9b..baaac8b46d 100644 --- a/src/gui/painting/qcolorspace.cpp +++ b/src/gui/painting/qcolorspace.cpp @@ -339,7 +339,6 @@ QColorTransform QColorSpacePrivate::transformationToColorSpace(const QColorSpace QColorTransform combined; auto ptr = new QColorTransformPrivate; combined.d = ptr; - combined.d->ref.ref(); ptr->colorSpaceIn = this; ptr->colorSpaceOut = out; ptr->colorMatrix = out->toXyz.inverted() * toXyz; diff --git a/src/gui/painting/qcolortransform.cpp b/src/gui/painting/qcolortransform.cpp index 10ccefed74..013abf769a 100644 --- a/src/gui/painting/qcolortransform.cpp +++ b/src/gui/painting/qcolortransform.cpp @@ -134,19 +134,11 @@ void QColorTransformPrivate::updateLutsOut() const */ -QColorTransform::QColorTransform(const QColorTransform &colorTransform) noexcept - : d(colorTransform.d) -{ - if (d) - d->ref.ref(); -} +QColorTransform::QColorTransform(const QColorTransform &colorTransform) noexcept = default; +QColorTransform::~QColorTransform() = default; -QColorTransform::~QColorTransform() -{ - if (d && !d->ref.deref()) - delete d; -} +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QColorTransformPrivate) /*! Applies the color transformation on the QRgb value \a argb. diff --git a/src/gui/painting/qcolortransform.h b/src/gui/painting/qcolortransform.h index fa52f2e152..30aceebda3 100644 --- a/src/gui/painting/qcolortransform.h +++ b/src/gui/painting/qcolortransform.h @@ -42,6 +42,7 @@ #include <QtGui/qtguiglobal.h> #include <QtGui/qrgb.h> +#include <QtCore/qshareddata.h> QT_BEGIN_NAMESPACE @@ -49,16 +50,15 @@ class QColor; class QRgba64; class QColorSpacePrivate; class QColorTransformPrivate; +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QColorTransformPrivate, Q_GUI_EXPORT) class QColorTransform { public: - QColorTransform() noexcept : d(nullptr) { } + QColorTransform() noexcept = default; Q_GUI_EXPORT ~QColorTransform(); Q_GUI_EXPORT QColorTransform(const QColorTransform &colorTransform) noexcept; - QColorTransform(QColorTransform &&colorTransform) noexcept - : d{qExchange(colorTransform.d, nullptr)} - { } + QColorTransform(QColorTransform &&colorTransform) = default; QColorTransform &operator=(const QColorTransform &other) noexcept { QColorTransform{other}.swap(*this); @@ -77,7 +77,7 @@ private: friend class QColorSpacePrivate; friend class QImage; - const QColorTransformPrivate *d; + QExplicitlySharedDataPointer<QColorTransformPrivate> d; }; Q_DECLARE_SHARED(QColorTransform) |