diff options
Diffstat (limited to 'src/qml/jsruntime/qv4variantobject_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4variantobject_p.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4variantobject_p.h b/src/qml/jsruntime/qv4variantobject_p.h index 926aec11cf..b1e872b5c5 100644 --- a/src/qml/jsruntime/qv4variantobject_p.h +++ b/src/qml/jsruntime/qv4variantobject_p.h @@ -68,6 +68,13 @@ struct VariantObject : Object { struct Data : Object::Data, public ExecutionEngine::ScarceResourceData { + Data(InternalClass *ic); + Data(ExecutionEngine *engine, const QVariant &value); + ~Data() { + if (isScarce()) + node.remove(); + } + bool isScarce() const; int vmePropertyReferenceCount; }; struct __Data : public ExecutionEngine::ScarceResourceData @@ -77,14 +84,10 @@ struct VariantObject : Object V4_OBJECT - VariantObject(InternalClass *ic); - VariantObject(ExecutionEngine *engine, const QVariant &value); - static QVariant toVariant(const ValueRef v); void addVmePropertyReference(); void removeVmePropertyReference(); - bool isScarce() const; static void destroy(Managed *that); static bool isEqualTo(Managed *m, Managed *other); @@ -93,8 +96,6 @@ struct VariantObject : Object struct VariantPrototype : VariantObject { public: - VariantPrototype(InternalClass *ic); - void init(); static ReturnedValue method_preserve(CallContext *ctx); |