diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-04-05 20:23:20 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-07-22 13:48:54 +0200 |
commit | b11ec085703a0b019c8115ff505ee6e2553fd4f1 (patch) | |
tree | 3336b31ba690f9b200b7fee8cc133aa4bf2e7837 /src/qml/jsruntime/qv4variantobject.cpp | |
parent | 05f17e841f971d3c8f635cc044c60c970c2055c9 (diff) |
Move Managed data into it's own subclass
This prepares for moving over to a d pointer scheme,
where Managed subclasses don't hold any data directly. This
is required to be able to move over to a modern GC.
Change-Id: I3f59633ac07a7da461bd2d4f0f9f3a8e3b0baf02
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4variantobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4variantobject.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/qml/jsruntime/qv4variantobject.cpp b/src/qml/jsruntime/qv4variantobject.cpp index 92cc19d8b9..6937368f87 100644 --- a/src/qml/jsruntime/qv4variantobject.cpp +++ b/src/qml/jsruntime/qv4variantobject.cpp @@ -91,7 +91,7 @@ QVariant VariantObject::toVariant(const QV4::ValueRef v) bool VariantObject::isScarce() const { - QVariant::Type t = data.type(); + QVariant::Type t = ExecutionEngine::ScarceResourceData::data.type(); return t == QVariant::Pixmap || t == QVariant::Image; } @@ -109,10 +109,10 @@ bool VariantObject::isEqualTo(Managed *m, Managed *other) assert(lv); if (QV4::VariantObject *rv = other->as<QV4::VariantObject>()) - return lv->data == rv->data; + return lv->ExecutionEngine::ScarceResourceData::data == rv->ExecutionEngine::ScarceResourceData::data; if (QV4::QmlValueTypeWrapper *v = other->as<QmlValueTypeWrapper>()) - return v->isEqual(lv->data); + return v->isEqual(lv->ExecutionEngine::ScarceResourceData::data); return false; } @@ -133,7 +133,7 @@ void VariantObject::removeVmePropertyReference() // and add to the ep->scarceResources list // since it is now eligible to be released // automatically by the engine. - internalClass->engine->scarceResources.insert(this); + internalClass()->engine->scarceResources.insert(this); } } @@ -167,7 +167,7 @@ QV4::ReturnedValue VariantPrototype::method_destroy(CallContext *ctx) if (o) { if (o->isScarce()) o->node.remove(); - o->data = QVariant(); + o->ExecutionEngine::ScarceResourceData::data = QVariant(); } return Encode::undefined(); } @@ -178,9 +178,9 @@ QV4::ReturnedValue VariantPrototype::method_toString(CallContext *ctx) Scoped<VariantObject> o(scope, ctx->callData->thisObject.as<QV4::VariantObject>()); if (!o) return Encode::undefined(); - QString result = o->data.toString(); - if (result.isEmpty() && !o->data.canConvert(QVariant::String)) - result = QString::fromLatin1("QVariant(%0)").arg(QString::fromLatin1(o->data.typeName())); + QString result = o->ExecutionEngine::ScarceResourceData::data.toString(); + if (result.isEmpty() && !o->ExecutionEngine::ScarceResourceData::data.canConvert(QVariant::String)) + result = QString::fromLatin1("QVariant(%0)").arg(QString::fromLatin1(o->ExecutionEngine::ScarceResourceData::data.typeName())); return Encode(ctx->engine->newString(result)); } @@ -189,7 +189,7 @@ QV4::ReturnedValue VariantPrototype::method_valueOf(CallContext *ctx) Scope scope(ctx); Scoped<VariantObject> o(scope, ctx->callData->thisObject.as<QV4::VariantObject>()); if (o) { - QVariant v = o->data; + QVariant v = o->ExecutionEngine::ScarceResourceData::data; switch (v.type()) { case QVariant::Invalid: return Encode::undefined(); |