aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/util
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-23 15:52:10 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-26 09:05:16 +0200
commit12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (patch)
tree880acb9c7c0d8289185b6aebe4339f439c707a0e /src/qml/util
parent2e4f66caa8a5f9e887dbdb4e3f2ae5c9be9a7005 (diff)
Fix Persistent/WeakValue API
Don't use unprotected Values in the API anymore. Change-Id: I8851628227fca374de24701bc8ee0908b5ae3923 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/util')
-rw-r--r--src/qml/util/qqmladaptormodel.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/qml/util/qqmladaptormodel.cpp b/src/qml/util/qqmladaptormodel.cpp
index 7351e696c6..c4ba42c84a 100644
--- a/src/qml/util/qqmladaptormodel.cpp
+++ b/src/qml/util/qqmladaptormodel.cpp
@@ -228,7 +228,7 @@ public:
p->setGetter(new (v4->memoryManager) QV4::IndexedBuiltinFunction(v4->rootContext, propertyId, QQmlDMCachedModelData::get_property));
p->setSetter(new (v4->memoryManager) QV4::IndexedBuiltinFunction(v4->rootContext, propertyId, QQmlDMCachedModelData::set_property));
}
- prototype = proto.asValue();
+ prototype = proto;
}
// QAbstractDynamicMetaObject
@@ -424,12 +424,12 @@ public:
QQmlAdaptorModelEngineData * const data = engineData(v4->v8Engine);
type->initializeConstructor(data);
}
- QV4::Object *proto = type->prototype.value().asObject();
- QV4::Object *o = new (proto->engine()->memoryManager) QQmlDelegateModelItemObject(proto->engine(), this);
- o->setPrototype(proto);
- QV4::Value data = QV4::Value::fromObject(o);
+ QV4::Scope scope(v4);
+ QV4::ScopedObject proto(scope, type->prototype.value());
+ QV4::ScopedObject o(scope, new (proto->engine()->memoryManager) QQmlDelegateModelItemObject(proto->engine(), this));
+ o->setPrototype(proto.getPointer());
++scriptRef;
- return data.asReturnedValue();
+ return o.asReturnedValue();
}
};
@@ -599,11 +599,12 @@ public:
QV4::ReturnedValue get()
{
QQmlAdaptorModelEngineData *data = engineData(v4->v8Engine);
- QV4::Object *o = new (v4->memoryManager) QQmlDelegateModelItemObject(v4, this);
- o->setPrototype(data->listItemProto.value().asObject());
- QV4::Value val = QV4::Value::fromObject(o);
+ QV4::Scope scope(v4);
+ QV4::ScopedObject o(scope, new (v4->memoryManager) QQmlDelegateModelItemObject(v4, this));
+ QV4::ScopedObject p(scope, data->listItemProto.value());
+ o->setPrototype(p.getPointer());
++scriptRef;
- return val.asReturnedValue();
+ return o.asReturnedValue();
}
void setValue(const QString &role, const QVariant &value)