aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4variantobject_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4variantobject_p.h')
-rw-r--r--src/qml/jsruntime/qv4variantobject_p.h13
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);