aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-05-20 15:43:48 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-05-26 08:04:17 +0000
commit7accd9cc74d88a17b08c83ea4b8275557dc318bb (patch)
treebf34489a210340e8866c07f184c0611506ac85a6
parent7645c8e0f88a83d021f0a327617189b7772b14eb (diff)
Consistently use pointers for the local variant in findProperty
Creating property data on the fly shall be optional, and we generally use pointers for such "output" parameters. Change-Id: I0e4c6c079381b60140971f4fd70a25d6548323eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp2
-rw-r--r--src/qml/jsruntime/qv4qobjectwrapper.cpp6
-rw-r--r--src/qml/qml/qqmlcontext.cpp2
-rw-r--r--src/qml/qml/qqmllist.cpp2
-rw-r--r--src/qml/qml/qqmlproperty.cpp4
-rw-r--r--src/qml/qml/qqmlpropertycache.cpp16
-rw-r--r--src/qml/qml/qqmlpropertycache_p.h8
7 files changed, 20 insertions, 20 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
index 1aa24ea3a4..223c575701 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
@@ -782,7 +782,7 @@ bool QQmlEngineDebugServiceImpl::setMethodBody(int objectId, const QString &meth
QQmlPropertyData dummy;
QQmlPropertyData *prop =
- QQmlPropertyCache::property(context->engine(), object, method, contextData, dummy);
+ QQmlPropertyCache::property(context->engine(), object, method, contextData, &dummy);
if (!prop || !prop->isVMEFunction())
return false;
diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
index fd8a0bed5d..4d422a3620 100644
--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -231,7 +231,7 @@ QQmlPropertyData *QObjectWrapper::findProperty(
if (ddata && ddata->propertyCache)
result = ddata->propertyCache->property(name, o, qmlContext);
else
- result = QQmlPropertyCache::property(engine->jsEngine(), o, name, qmlContext, *local);
+ result = QQmlPropertyCache::property(engine->jsEngine(), o, name, qmlContext, local);
return result;
}
@@ -433,7 +433,7 @@ bool QObjectWrapper::setQmlProperty(
return false;
QQmlPropertyData local;
- QQmlPropertyData *result = QQmlPropertyCache::property(engine->jsEngine(), object, name, qmlContext, local);
+ QQmlPropertyData *result = QQmlPropertyCache::property(engine->jsEngine(), object, name, qmlContext, &local);
if (!result)
return false;
@@ -872,7 +872,7 @@ ReturnedValue QObjectWrapper::virtualResolveLookupGetter(const Object *object, E
QQmlData *ddata = QQmlData::get(qobj, false);
if (!ddata || !ddata->propertyCache) {
QQmlPropertyData local;
- QQmlPropertyData *property = QQmlPropertyCache::property(engine->jsEngine(), qobj, name, qmlContext, local);
+ QQmlPropertyData *property = QQmlPropertyCache::property(engine->jsEngine(), qobj, name, qmlContext, &local);
return property ? getProperty(engine, qobj, property) : QV4::Encode::undefined();
}
QQmlPropertyData *property = ddata->propertyCache->property(name.getPointer(), qobj, qmlContext);
diff --git a/src/qml/qml/qqmlcontext.cpp b/src/qml/qml/qqmlcontext.cpp
index a67eeeecc9..0b74b9d643 100644
--- a/src/qml/qml/qqmlcontext.cpp
+++ b/src/qml/qml/qqmlcontext.cpp
@@ -374,7 +374,7 @@ QVariant QQmlContext::contextProperty(const QString &name) const
if (QObject *obj = data->contextObject()) {
QQmlPropertyData local;
QQmlPropertyData *property =
- QQmlPropertyCache::property(data->engine(), obj, name, data, local);
+ QQmlPropertyCache::property(data->engine(), obj, name, data, &local);
if (property) value = obj->metaObject()->property(property->coreIndex()).read(obj);
}
diff --git a/src/qml/qml/qqmllist.cpp b/src/qml/qml/qqmllist.cpp
index b504fdf22d..9f1ffd24c5 100644
--- a/src/qml/qml/qqmllist.cpp
+++ b/src/qml/qml/qqmllist.cpp
@@ -135,7 +135,7 @@ QQmlListReference::QQmlListReference(QObject *object, const char *property, QQml
QQmlPropertyData local;
QQmlPropertyData *data =
- QQmlPropertyCache::property(engine, object, QLatin1String(property), nullptr, local);
+ QQmlPropertyCache::property(engine, object, QLatin1String(property), nullptr, &local);
if (!data || !data->isQList()) return;
diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp
index 3824a7fb6d..1d95de9631 100644
--- a/src/qml/qml/qqmlproperty.cpp
+++ b/src/qml/qml/qqmlproperty.cpp
@@ -310,7 +310,7 @@ void QQmlPropertyPrivate::initProperty(QObject *obj, const QString &name)
QQmlPropertyData local;
QQmlPropertyData *property =
- QQmlPropertyCache::property(engine, currentObject, pathName, context, local);
+ QQmlPropertyCache::property(engine, currentObject, pathName, context, &local);
if (!property) return; // Not a property
if (property->isFunction())
@@ -412,7 +412,7 @@ void QQmlPropertyPrivate::initProperty(QObject *obj, const QString &name)
// Property
QQmlPropertyData local;
QQmlPropertyData *property =
- QQmlPropertyCache::property(engine, currentObject, terminal, context, local);
+ QQmlPropertyCache::property(engine, currentObject, terminal, context, &local);
if (property && !property->isFunction()) {
object = currentObject;
core = *property;
diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp
index d1b040ee99..6cf09e4886 100644
--- a/src/qml/qml/qqmlpropertycache.cpp
+++ b/src/qml/qml/qqmlpropertycache.cpp
@@ -1014,7 +1014,7 @@ static inline QByteArray qQmlPropertyCacheToString(const QV4::String *string)
template<typename T>
QQmlPropertyData *
qQmlPropertyCacheProperty(QJSEngine *engine, QObject *obj, T name,
- const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData &local)
+ const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData *local)
{
QQmlPropertyCache *cache = nullptr;
@@ -1036,10 +1036,10 @@ qQmlPropertyCacheProperty(QJSEngine *engine, QObject *obj, T name,
if (cache) {
rv = cache->property(name, obj, context);
- } else {
- local = qQmlPropertyCacheCreate(obj->metaObject(), qQmlPropertyCacheToString(name));
- if (local.isValid())
- rv = &local;
+ } else if (local) {
+ *local = qQmlPropertyCacheCreate(obj->metaObject(), qQmlPropertyCacheToString(name));
+ if (local->isValid())
+ rv = local;
}
return rv;
@@ -1047,21 +1047,21 @@ qQmlPropertyCacheProperty(QJSEngine *engine, QObject *obj, T name,
QQmlPropertyData *
QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, const QV4::String *name,
- const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData &local)
+ const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData *local)
{
return qQmlPropertyCacheProperty<const QV4::String *>(engine, obj, name, context, local);
}
QQmlPropertyData *
QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, const QStringRef &name,
- const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData &local)
+ const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData *local)
{
return qQmlPropertyCacheProperty<const QStringRef &>(engine, obj, name, context, local);
}
QQmlPropertyData *
QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, const QLatin1String &name,
- const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData &local)
+ const QQmlRefPointer<QQmlContextData> &context, QQmlPropertyData *local)
{
return qQmlPropertyCacheProperty<const QLatin1String &>(engine, obj, name, context, local);
}
diff --git a/src/qml/qml/qqmlpropertycache_p.h b/src/qml/qml/qqmlpropertycache_p.h
index 43ffb0fb36..86435656db 100644
--- a/src/qml/qml/qqmlpropertycache_p.h
+++ b/src/qml/qml/qqmlpropertycache_p.h
@@ -137,15 +137,15 @@ public:
inline bool isAllowedInRevision(QQmlPropertyData *) const;
static QQmlPropertyData *property(QJSEngine *, QObject *, const QStringRef &,
- const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData &);
+ const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData *);
static QQmlPropertyData *property(QJSEngine *, QObject *, const QLatin1String &,
- const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData &);
+ const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData *);
static QQmlPropertyData *property(QJSEngine *, QObject *, const QV4::String *,
- const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData &);
+ const QQmlRefPointer<QQmlContextData> &, QQmlPropertyData *);
static QQmlPropertyData *property(QJSEngine *engine, QObject *obj, const QString &name,
const QQmlRefPointer<QQmlContextData> &context,
- QQmlPropertyData &local)
+ QQmlPropertyData *local)
{
return property(engine, obj, QStringRef(&name), context, local);
}