summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/qml/qdeclarativecontextscriptclass.cpp2
-rw-r--r--src/declarative/qml/qdeclarativeobjectscriptclass.cpp8
-rw-r--r--src/declarative/qml/qdeclarativeobjectscriptclass_p.h3
-rw-r--r--src/declarative/qml/qdeclarativetypenamescriptclass.cpp2
4 files changed, 9 insertions, 6 deletions
diff --git a/src/declarative/qml/qdeclarativecontextscriptclass.cpp b/src/declarative/qml/qdeclarativecontextscriptclass.cpp
index 1ebedbb..03a1f6a 100644
--- a/src/declarative/qml/qdeclarativecontextscriptclass.cpp
+++ b/src/declarative/qml/qdeclarativecontextscriptclass.cpp
@@ -270,7 +270,7 @@ QDeclarativeContextScriptClass::property(Object *object, const Identifier &name)
if (lastScopeObject) {
- return ep->objectClass->property(lastScopeObject, name);
+ return ep->objectClass->property(lastScopeObject, name, context());
} else if (lastData) {
diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
index be2be8b..7c818a6 100644
--- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
+++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
@@ -203,12 +203,14 @@ QDeclarativeObjectScriptClass::queryProperty(QObject *obj, const Identifier &nam
QDeclarativeObjectScriptClass::Value
QDeclarativeObjectScriptClass::property(Object *object, const Identifier &name)
{
- return property(toQObject(object), name);
+ return property(toQObject(object), name, context());
}
QDeclarativeObjectScriptClass::Value
-QDeclarativeObjectScriptClass::property(QObject *obj, const Identifier &name)
+QDeclarativeObjectScriptClass::property(QObject *obj, const Identifier &name, QScriptContext *context)
{
+ Q_ASSERT(context);
+
QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
if (name == m_destroyId.identifier)
@@ -220,7 +222,7 @@ QDeclarativeObjectScriptClass::property(QObject *obj, const Identifier &name)
if (lastData && !lastData->isValid()) {
QString error = QLatin1String("Cannot access non-existent property \"") +
toString(name) + QLatin1Char('\"');
- return Value(scriptEngine, context()->throwError(error));
+ return Value(scriptEngine, context->throwError(error));
}
Q_ASSERT(obj);
diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass_p.h b/src/declarative/qml/qdeclarativeobjectscriptclass_p.h
index 34c71a0..61fa586 100644
--- a/src/declarative/qml/qdeclarativeobjectscriptclass_p.h
+++ b/src/declarative/qml/qdeclarativeobjectscriptclass_p.h
@@ -113,10 +113,11 @@ public:
QDeclarativeContextData *evalContext,
QueryHints hints = 0);
- Value property(QObject *, const Identifier &);
+ Value property(QObject *, const Identifier &, QScriptContext *context);
void setProperty(QObject *, const Identifier &name, const QScriptValue &,
QScriptContext *context, QDeclarativeContextData *evalContext = 0);
+
virtual QStringList propertyNames(Object *);
virtual bool compare(Object *, Object *);
diff --git a/src/declarative/qml/qdeclarativetypenamescriptclass.cpp b/src/declarative/qml/qdeclarativetypenamescriptclass.cpp
index 2a3417a..b512387 100644
--- a/src/declarative/qml/qdeclarativetypenamescriptclass.cpp
+++ b/src/declarative/qml/qdeclarativetypenamescriptclass.cpp
@@ -147,7 +147,7 @@ QDeclarativeTypeNameScriptClass::property(Object *obj, const Identifier &name)
if (type) {
return Value(scriptEngine, newObject(((TypeNameData *)obj)->object, type, ((TypeNameData *)obj)->mode));
} else if (object) {
- return ep->objectClass->property(object, name);
+ return ep->objectClass->property(object, name, context());
} else {
return Value(scriptEngine, enumValue);
}