diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-12-07 19:02:39 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-01-25 23:55:27 +0100 |
commit | 71597472ddbe6957f47ae61b72c147846a80f16f (patch) | |
tree | 756ce46b97f0487e86c50736abe0f74dff0dc742 /src/qml/qml/qqmlscriptdata.cpp | |
parent | d6eaa70859fbec0f02d15bd8e8fd6ddc360ab371 (diff) |
Avoid ping-pong between plain pointers and QQmlRefPointer
We want to deal in QQmlRefPointer as much as possible. In particular,
assigning nullptr to a QQmlRefPointer triggers the creation of an empty
QQmlRefPointer and the assignment of that one. Provide a reset() method
to do this in a cleaner way.
In turn, make QQmlGuardedContextData::reset() private. It's really
dangerous and should not be called from outside. setContextData() is
safer but may do additional work. The only place from where reset() was
previously called in its public capacity is probably dead code, though.
Change-Id: Idb72e255dbfad6e5dd963dc76d719bb9edc10471
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlscriptdata.cpp')
-rw-r--r-- | src/qml/qml/qqmlscriptdata.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlscriptdata.cpp b/src/qml/qml/qqmlscriptdata.cpp index 684564fcfb..c2e8c8e9d5 100644 --- a/src/qml/qml/qqmlscriptdata.cpp +++ b/src/qml/qml/qqmlscriptdata.cpp @@ -50,8 +50,7 @@ QT_BEGIN_NAMESPACE QQmlScriptData::QQmlScriptData() - : typeNameCache(nullptr) - , m_loaded(false) + : m_loaded(false) { } @@ -100,7 +99,7 @@ QQmlRefPointer<QQmlContextData> QQmlScriptData::qmlContextDataForContext( } QV4::ScopedValue v(scope); for (int ii = 0; ii < scripts.count(); ++ii) { - v = scripts.at(ii)->scriptData()->scriptValueForContext(qmlContextData.data()); + v = scripts.at(ii)->scriptData()->scriptValueForContext(qmlContextData); scriptsArray->put(ii, v); } |