summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/kernel/qobject.cpp15
-rw-r--r--src/corelib/kernel/qobject_p.h6
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;