diff options
Diffstat (limited to 'src/qml/jsruntime/qv4qmlcontext_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4qmlcontext_p.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/qml/jsruntime/qv4qmlcontext_p.h b/src/qml/jsruntime/qv4qmlcontext_p.h index e3e7239fe5..ba7c5da146 100644 --- a/src/qml/jsruntime/qv4qmlcontext_p.h +++ b/src/qml/jsruntime/qv4qmlcontext_p.h @@ -56,7 +56,7 @@ #include <private/qv4object_p.h> #include <private/qv4context_p.h> -#include <private/qqmlcontext_p.h> +#include <private/qqmlcontextdata_p.h> QT_BEGIN_NAMESPACE @@ -72,10 +72,11 @@ namespace Heap { DECLARE_HEAP_OBJECT(QQmlContextWrapper, Object) { DECLARE_MARKOBJECTS(QQmlContextWrapper); - void init(QQmlContextData *context, QObject *scopeObject); + void init(QQmlRefPointer<QQmlContextData> context, QObject *scopeObject); void destroy(); - QQmlContextDataRef *context; + // This has to be a plain pointer because object needs to be a POD type. + QQmlContextData *context; QQmlQPointer<QObject> scopeObject; }; @@ -97,7 +98,7 @@ struct Q_QML_EXPORT QQmlContextWrapper : Object V4_INTERNALCLASS(QmlContextWrapper) inline QObject *getScopeObject() const { return d()->scopeObject; } - inline QQmlContextData *getContext() const { return *d()->context; } + inline QQmlRefPointer<QQmlContextData> getContext() const { return d()->context; } static ReturnedValue getPropertyAndBase(const QQmlContextWrapper *resource, PropertyKey id, const Value *receiver, bool *hasProperty, Value *base, Lookup *lookup = nullptr); @@ -120,13 +121,16 @@ struct Q_QML_EXPORT QmlContext : public ExecutionContext V4_MANAGED(QmlContext, ExecutionContext) V4_INTERNALCLASS(QmlContext) - static Heap::QmlContext *create(QV4::ExecutionContext *parent, QQmlContextData *context, QObject *scopeObject); + static Heap::QmlContext *create( + QV4::ExecutionContext *parent, QQmlRefPointer<QQmlContextData> context, + QObject *scopeObject); QObject *qmlScope() const { return d()->qml()->scopeObject; } - QQmlContextData *qmlContext() const { - return *d()->qml()->context; + + QQmlRefPointer<QQmlContextData> qmlContext() const { + return d()->qml()->context; } }; |