From 12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 23 Sep 2013 15:52:10 +0200 Subject: Fix Persistent/WeakValue API Don't use unprotected Values in the API anymore. Change-Id: I8851628227fca374de24701bc8ee0908b5ae3923 Reviewed-by: Simon Hausmann --- src/imports/localstorage/plugin.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/imports') diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp index 211809e59c..bac76b0657 100644 --- a/src/imports/localstorage/plugin.cpp +++ b/src/imports/localstorage/plugin.cpp @@ -297,7 +297,8 @@ static ReturnedValue qmlsqldatabase_executeSql(SimpleCallContext *ctx) } if (query.exec()) { QQmlSqlDatabaseWrapper *rows = new (ctx->engine->memoryManager) QQmlSqlDatabaseWrapper(engine); - rows->setPrototype(databaseData(engine)->rowsProto.value().asObject()); + QV4::ScopedObject p(scope, databaseData(engine)->rowsProto.value()); + rows->setPrototype(p.getPointer()); rows->type = QQmlSqlDatabaseWrapper::Rows; rows->database = db; rows->sqlQuery = query; @@ -344,7 +345,8 @@ static ReturnedValue qmlsqldatabase_changeVersion(SimpleCallContext *ctx) V4THROW_SQL(SQLEXCEPTION_VERSION_ERR, QQmlEngine::tr("Version mismatch: expected %1, found %2").arg(from_version).arg(r->version)); QQmlSqlDatabaseWrapper *w = new (ctx->engine->memoryManager) QQmlSqlDatabaseWrapper(engine); - w->setPrototype(databaseData(engine)->queryProto.value().asObject()); + QV4::ScopedObject p(scope, databaseData(engine)->queryProto.value()); + w->setPrototype(p.getPointer()); w->type = QQmlSqlDatabaseWrapper::Query; w->database = db; w->version = r->version; @@ -401,7 +403,8 @@ static ReturnedValue qmlsqldatabase_transaction_shared(SimpleCallContext *ctx, b QSqlDatabase db = r->database; QQmlSqlDatabaseWrapper *w = new (ctx->engine->memoryManager) QQmlSqlDatabaseWrapper(engine); - w->setPrototype(databaseData(engine)->queryProto.value().asObject()); + QV4::ScopedObject p(scope, databaseData(engine)->queryProto.value()); + w->setPrototype(p.getPointer()); w->type = QQmlSqlDatabaseWrapper::Query; w->database = db; w->version = r->version; @@ -684,7 +687,8 @@ void QQuickLocalStorage::openDatabaseSync(QQmlV4Function *args) } QQmlSqlDatabaseWrapper *db = new (ctx->engine->memoryManager) QQmlSqlDatabaseWrapper(engine); - db->setPrototype(databaseData(engine)->databaseProto.value().asObject()); + QV4::ScopedObject p(scope, databaseData(engine)->databaseProto.value()); + db->setPrototype(p.getPointer()); db->database = database; db->version = version; -- cgit v1.2.3