diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-08-07 13:56:31 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-08-10 07:24:32 +0000 |
commit | 415f55d1400f6abdd3a8e3edaf5ff208ecdad216 (patch) | |
tree | 88e75e6c2b5d3b757ac59b644f71410158201354 /src/qml/jsruntime/qv4managed_p.h | |
parent | f21e8c641af6b2d10f0d7e7e0fc6a755dab3673c (diff) |
Encapsulate and protect all accesses to the vtable of Heap objects
This is required, so we can safely access the vtable even while
we're marking objects during GC.
Change-Id: I34f56b61b4bca0d0742faf607eb5ab8b2c30685e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/jsruntime/qv4managed_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4managed_p.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index e0ad0d89e3..9b7df9e68e 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -148,15 +148,15 @@ public: }; Q_MANAGED_TYPE(Invalid) - bool isListType() const { return d()->vtable->type == Type_QmlSequence; } + bool isListType() const { return d()->vtable()->type == Type_QmlSequence; } - bool isArrayObject() const { return d()->vtable->type == Type_ArrayObject; } - bool isStringObject() const { return d()->vtable->type == Type_StringObject; } + bool isArrayObject() const { return d()->vtable()->type == Type_ArrayObject; } + bool isStringObject() const { return d()->vtable()->type == Type_StringObject; } QString className() const; bool isEqualTo(const Managed *other) const - { return d()->vtable->isEqualTo(const_cast<Managed *>(this), const_cast<Managed *>(other)); } + { return d()->vtable()->isEqualTo(const_cast<Managed *>(this), const_cast<Managed *>(other)); } static bool isEqualTo(Managed *m, Managed *other); @@ -180,7 +180,7 @@ inline const Managed *Value::as() const { template<> inline const Object *Value::as() const { - return isManaged() && m() && m()->vtable->isObject ? objectValue() : 0; + return isManaged() && m() && m()->vtable()->isObject ? objectValue() : 0; } } |