aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltest
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-24 13:53:54 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-26 09:05:22 +0200
commit0f204625dc6720d40df22ca352af995af5448525 (patch)
treeedb78721935e2b0d34927b3dc358c3b171dc43b1 /src/qmltest
parenta57085f00b146798a0cca0d52dfa127232c3e659 (diff)
Fix QQmlV4Function API to be GC safe
Change-Id: Id4f79c22fc48ada1c8a9a858e1b7b3d1cf14d120 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qmltest')
-rw-r--r--src/qmltest/quicktestresult.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/qmltest/quicktestresult.cpp b/src/qmltest/quicktestresult.cpp
index 67e80e7a0d..d38282d955 100644
--- a/src/qmltest/quicktestresult.cpp
+++ b/src/qmltest/quicktestresult.cpp
@@ -477,17 +477,18 @@ bool QuickTestResult::fuzzyCompare(const QVariant &actual, const QVariant &expec
void QuickTestResult::stringify(QQmlV4Function *args)
{
if (args->length() < 1)
- args->setReturnValue(QV4::Value::nullValue());
+ args->setReturnValue(QV4::Encode::null());
- QV4::Value value = (*args)[0];
+ QV4::Scope scope(args->v4engine());
+ QV4::ScopedValue value(scope, (*args)[0]);
QString result;
QV8Engine *engine = args->engine();
//Check for Object Type
- if (value.isObject()
- && !value.asFunctionObject()
- && !value.asArrayObject()) {
+ if (value->isObject()
+ && !value->asFunctionObject()
+ && !value->asArrayObject()) {
QVariant v = engine->toVariant(value, QMetaType::UnknownType);
if (v.isValid()) {
switch (v.type()) {
@@ -505,14 +506,14 @@ void QuickTestResult::stringify(QQmlV4Function *args)
result = QLatin1String("Object");
}
} else {
- QString tmp = value.toQStringNoThrow();
- if (value.asArrayObject())
+ QString tmp = value->toQStringNoThrow();
+ if (value->asArrayObject())
result.append(QString::fromLatin1("[%1]").arg(tmp));
else
result.append(tmp);
}
- args->setReturnValue(args->engine()->toString(result));
+ args->setReturnValue(args->engine()->toString(result).asReturnedValue());
}
bool QuickTestResult::compare