diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-24 13:53:54 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-26 09:05:22 +0200 |
commit | 0f204625dc6720d40df22ca352af995af5448525 (patch) | |
tree | edb78721935e2b0d34927b3dc358c3b171dc43b1 /src/qmltest | |
parent | a57085f00b146798a0cca0d52dfa127232c3e659 (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.cpp | 17 |
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 |