summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2021-12-30 10:33:34 +0100
committerMarc Mutz <marc.mutz@qt.io>2022-01-05 08:22:00 +0100
commitbf81cd8d923b499f261ce2938faea506d385c639 (patch)
treef0e2c1f2c2dd4189d4ce3a3749b859e471ab470d
parent85c31d976fd4ea611f03b18372f57130c16f9c34 (diff)
De-inline ctors/dtors in qabstractanimation_p.h
Also add explicit, where missing, and use NSDMI to simplify default ctor implementations. For the ctors, this is just about code hygiene. The classes are exported, so de-inlining the ctors prevents them from being duplicated in other libraries. Ditto dtors, except in the case of dtors, being virtual functions, we also avoid duplicating vtables, which has its own set of problems (see bug-report). Task-number: QTBUG-45582 Change-Id: I11536844b751f2e81269a5637153f84c8874ab10 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/animation/qabstractanimation.cpp23
-rw-r--r--src/corelib/animation/qabstractanimation_p.h23
2 files changed, 39 insertions, 7 deletions
diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp
index 1e887bfb54..ce9cb70565 100644
--- a/src/corelib/animation/qabstractanimation.cpp
+++ b/src/corelib/animation/qabstractanimation.cpp
@@ -227,6 +227,8 @@ QUnifiedTimer::QUnifiedTimer() :
driver = &defaultDriver;
}
+QUnifiedTimer::~QUnifiedTimer()
+ = default;
QUnifiedTimer *QUnifiedTimer::instance(bool create)
{
@@ -560,6 +562,9 @@ QAnimationTimer::QAnimationTimer() :
{
}
+QAnimationTimer::~QAnimationTimer()
+ = default;
+
QAnimationTimer *QAnimationTimer::instance(bool create)
{
QAnimationTimer *inst;
@@ -896,6 +901,9 @@ QDefaultAnimationDriver::QDefaultAnimationDriver(QUnifiedTimer *timer)
connect(this, SIGNAL(stopped()), this, SLOT(stopTimer()));
}
+QDefaultAnimationDriver::~QDefaultAnimationDriver()
+ = default;
+
void QDefaultAnimationDriver::timerEvent(QTimerEvent *e)
{
Q_ASSERT(e->timerId() == m_timer.timerId());
@@ -914,6 +922,21 @@ void QDefaultAnimationDriver::stopTimer()
m_timer.stop();
}
+QAnimationDriverPrivate::QAnimationDriverPrivate()
+ = default;
+
+QAnimationDriverPrivate::~QAnimationDriverPrivate()
+ = default;
+
+QAbstractAnimationTimer::QAbstractAnimationTimer()
+ = default;
+
+QAbstractAnimationTimer::~QAbstractAnimationTimer()
+ = default;
+
+QAbstractAnimationPrivate::QAbstractAnimationPrivate()
+ = default;
+
QAbstractAnimationPrivate::~QAbstractAnimationPrivate() { }
void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState)
diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h
index ef5fa13244..feefbaa92f 100644
--- a/src/corelib/animation/qabstractanimation_p.h
+++ b/src/corelib/animation/qabstractanimation_p.h
@@ -68,6 +68,7 @@ class QAbstractAnimation;
class QAbstractAnimationPrivate : public QObjectPrivate
{
public:
+ QAbstractAnimationPrivate();
virtual ~QAbstractAnimationPrivate();
static QAbstractAnimationPrivate *get(QAbstractAnimation *q)
@@ -117,7 +118,8 @@ class QDefaultAnimationDriver : public QAnimationDriver
{
Q_OBJECT
public:
- QDefaultAnimationDriver(QUnifiedTimer *timer);
+ explicit QDefaultAnimationDriver(QUnifiedTimer *timer);
+ ~QDefaultAnimationDriver() override;
protected:
void timerEvent(QTimerEvent *e) override;
@@ -134,24 +136,27 @@ private:
class Q_CORE_EXPORT QAnimationDriverPrivate : public QObjectPrivate
{
public:
- QAnimationDriverPrivate() : running(false) {}
+ QAnimationDriverPrivate();
+ ~QAnimationDriverPrivate() override;
+
QElapsedTimer timer;
- bool running;
+ bool running = false;
};
class Q_CORE_EXPORT QAbstractAnimationTimer : public QObject
{
Q_OBJECT
public:
- QAbstractAnimationTimer() : isRegistered(false), isPaused(false), pauseDuration(0) {}
+ QAbstractAnimationTimer();
+ ~QAbstractAnimationTimer() override;
virtual void updateAnimationsTime(qint64 delta) = 0;
virtual void restartAnimationTimer() = 0;
virtual int runningAnimationCount() = 0;
- bool isRegistered;
- bool isPaused;
- int pauseDuration;
+ bool isRegistered = false;
+ bool isPaused = false;
+ int pauseDuration = 0;
};
class Q_CORE_EXPORT QUnifiedTimer : public QObject
@@ -161,6 +166,8 @@ private:
QUnifiedTimer();
public:
+ ~QUnifiedTimer() override;
+
static QUnifiedTimer *instance();
static QUnifiedTimer *instance(bool create);
@@ -252,6 +259,8 @@ private:
QAnimationTimer();
public:
+ ~QAnimationTimer() override;
+
static QAnimationTimer *instance();
static QAnimationTimer *instance(bool create);