summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools')
-rw-r--r--src/corelib/tools/qeasingcurve.cpp15
-rw-r--r--src/corelib/tools/qeasingcurve.h3
2 files changed, 3 insertions, 15 deletions
diff --git a/src/corelib/tools/qeasingcurve.cpp b/src/corelib/tools/qeasingcurve.cpp
index 7a47262798..1ca9a55d72 100644
--- a/src/corelib/tools/qeasingcurve.cpp
+++ b/src/corelib/tools/qeasingcurve.cpp
@@ -1100,22 +1100,9 @@ QEasingCurve::~QEasingCurve()
}
/*!
+ \fn QEasingCurve &QEasingCurve::operator=(const QEasingCurve &other)
Copy \a other.
*/
-QEasingCurve &QEasingCurve::operator=(const QEasingCurve &other)
-{
- // ### non-atomic, requires malloc on shallow copy
- if (d_ptr->config) {
- delete d_ptr->config;
- d_ptr->config = 0;
- }
-
- *d_ptr = *other.d_ptr;
- if (other.d_ptr->config)
- d_ptr->config = other.d_ptr->config->copy();
-
- return *this;
-}
/*!
\fn void QEasingCurve::swap(QEasingCurve &other)
diff --git a/src/corelib/tools/qeasingcurve.h b/src/corelib/tools/qeasingcurve.h
index 64e4027fc4..f3c7c9b618 100644
--- a/src/corelib/tools/qeasingcurve.h
+++ b/src/corelib/tools/qeasingcurve.h
@@ -82,7 +82,8 @@ public:
QEasingCurve(const QEasingCurve &other);
~QEasingCurve();
- QEasingCurve &operator=(const QEasingCurve &other);
+ QEasingCurve &operator=(const QEasingCurve &other)
+ { if ( this != &other ) { QEasingCurve copy(other); swap(copy); } return *this; }
#ifdef Q_COMPILER_RVALUE_REFS
QEasingCurve(QEasingCurve &&other) : d_ptr(other.d_ptr) { other.d_ptr = 0; }
QEasingCurve &operator=(QEasingCurve &&other)