diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-03-10 14:23:55 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-03-15 11:36:09 +0100 |
commit | 6313a1adf5b04cb06b9630110f2be9cada6aeb44 (patch) | |
tree | efae8e1b38933d3374ea04d1bfb32d154452280c | |
parent | de699decb49929845aff1ade4cdf1074ea640ebf (diff) |
Extract Method QObjectPrivate::ensureExtraData()
... to centralize the creation of QObjectPrivate::extraData.
Change-Id: I04e97779ceb0168fa7660e77e0dab2ed3e1ad03e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 15 | ||||
-rw-r--r-- | src/corelib/kernel/qobject_p.h | 6 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 5275fc4bf7..61023530b5 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -1272,8 +1272,7 @@ void QObject::setObjectName(const QString &name) { Q_D(QObject); - if (!d->extraData) - d->extraData = new QObjectPrivate::ExtraData(d); + d->ensureExtraData(); d->extraData->objectName.removeBindingUnlessInWrapper(); @@ -1287,8 +1286,7 @@ QBindable<QString> QObject::bindableObjectName() { Q_D(QObject); - if (!d->extraData) - d->extraData = new QObjectPrivate::ExtraData(d); + d->ensureExtraData(); return QBindable<QString>(&d->extraData->objectName); } @@ -1817,8 +1815,7 @@ int QObject::startTimer(int interval, Qt::TimerType timerType) return 0; } int timerId = thisThreadData->eventDispatcher.loadRelaxed()->registerTimer(interval, timerType, this); - if (!d->extraData) - d->extraData = new QObjectPrivate::ExtraData(d); + d->ensureExtraData(); d->extraData->runningTimers.append(timerId); return timerId; } @@ -2278,8 +2275,7 @@ void QObject::installEventFilter(QObject *obj) return; } - if (!d->extraData) - d->extraData = new QObjectPrivate::ExtraData(d); + d->ensureExtraData(); // clean up unused items in the list d->extraData->eventFilters.removeAll((QObject *)nullptr); @@ -4101,8 +4097,7 @@ bool QObject::setProperty(const char *name, const QVariant &value) int id = meta->indexOfProperty(name); if (id < 0) { - if (!d->extraData) - d->extraData = new QObjectPrivate::ExtraData(d); + d->ensureExtraData(); const int idx = d->extraData->propertyNames.indexOf(name); diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index 1b0706e356..149c6a03a6 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -125,6 +125,12 @@ public: QObjectPrivate *parent; }; + void ensureExtraData() + { + if (!extraData) + extraData = new ExtraData(this); + } + typedef void (*StaticMetaCallFunction)(QObject *, QMetaObject::Call, int, void **); struct Connection; struct SignalVector; |