summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qpixmap.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-09-11 13:37:49 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-09-23 18:00:54 +0200
commit2f319f3be999eb2462515cfcf2dff505592e73f5 (patch)
tree0dcff72b3d4ba19ae19a05aca114e95f9da0e4e6 /src/gui/image/qpixmap.cpp
parentd3c985631dceef1209c74958baac881d9a67061b (diff)
Give QPixmap a move constructor
It already has a move-assignment operator, and implements swapping. This requires a specialization of the QExplicitlySharedDataPointer destructor to be forward declared, and an implementation that is identical to the default version. Otherwise we would need QPlatformPixmap to be fully defined in the public QPixmap header. Change-Id: I2651bbc29a7083a93e3b3ad671d3aeea659b7d5a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/gui/image/qpixmap.cpp')
-rw-r--r--src/gui/image/qpixmap.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
index 3847366b4d..c3ae853795 100644
--- a/src/gui/image/qpixmap.cpp
+++ b/src/gui/image/qpixmap.cpp
@@ -224,6 +224,15 @@ QPixmap::QPixmap(const QPixmap &pixmap)
}
}
+/*! \fn QPixmap::QPixmap(QPixmap &&other)
+ Move-constructs a QPixmap instance from \a other.
+
+ \sa swap() operator=(QPixmap&&)
+*/
+template<>
+QExplicitlySharedDataPointer<QPlatformPixmap>::~QExplicitlySharedDataPointer()
+{ if (d && !d->ref.deref()) delete d; }
+
/*!
Constructs a pixmap from the given \a xpm data, which must be a
valid XPM image.