From 87652f1bfd5a7cefc90ffe1aba23c179a75cfd0d Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 11 Feb 2010 11:21:01 +1000 Subject: Fix tst_qmlecmascript::callQtInvokables The assert in qmlobjectscriptclass.cpp is valid when the call is running in a correctly created QML environment, but not valid for the test case which bypasses QML. --- src/declarative/qml/qmlobjectscriptclass.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/declarative/qml/qmlobjectscriptclass.cpp b/src/declarative/qml/qmlobjectscriptclass.cpp index 7bbb7df..2823496 100644 --- a/src/declarative/qml/qmlobjectscriptclass.cpp +++ b/src/declarative/qml/qmlobjectscriptclass.cpp @@ -153,10 +153,11 @@ QmlObjectScriptClass::queryProperty(QObject *obj, const Identifier &name, if (!evalContext && context()) { // Global object, QScriptContext activation object, QmlContext object QScriptValue scopeNode = scopeChainValue(context(), -3); - Q_ASSERT(scopeNode.isValid()); - Q_ASSERT(scriptClass(scopeNode) == enginePrivate->contextClass); + if (scopeNode.isValid()) { + Q_ASSERT(scriptClass(scopeNode) == enginePrivate->contextClass); - evalContext = enginePrivate->contextClass->contextFromValue(scopeNode); + evalContext = enginePrivate->contextClass->contextFromValue(scopeNode); + } } if (evalContext) { @@ -332,10 +333,11 @@ void QmlObjectScriptClass::setProperty(QObject *obj, if (!evalContext && context()) { // Global object, QScriptContext activation object, QmlContext object QScriptValue scopeNode = scopeChainValue(context(), -3); - Q_ASSERT(scopeNode.isValid()); - Q_ASSERT(scriptClass(scopeNode) == enginePriv->contextClass); + if (scopeNode.isValid()) { + Q_ASSERT(scriptClass(scopeNode) == enginePriv->contextClass); - evalContext = enginePriv->contextClass->contextFromValue(scopeNode); + evalContext = enginePriv->contextClass->contextFromValue(scopeNode); + } } QmlAbstractBinding *delBinding = QmlMetaPropertyPrivate::setBinding(obj, *lastData, 0); -- cgit v0.12