diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-10 07:18:03 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-10 07:18:03 (GMT) |
commit | 606e15215b33b51a4bc716654388b8e9eaa647e6 (patch) | |
tree | b786af92424c752ddc5fd130844281558ce17995 /src/script/bridge/qscriptclassobject.cpp | |
parent | 9bc46788f3b0f4a652be604d3facbcd84602677a (diff) | |
parent | 2c7bab684fa9684175b9a6c913a20a76f3502d08 (diff) | |
download | Qt-606e15215b33b51a4bc716654388b8e9eaa647e6.zip Qt-606e15215b33b51a4bc716654388b8e9eaa647e6.tar.gz Qt-606e15215b33b51a4bc716654388b8e9eaa647e6.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
Clear X11 structure before use
Make operator QRectF const
Fix GC-related crash in QScriptValue::setData()
get rid of dependency on QtGui
Removed implicity QtGui linking from icd.pro as it is not needed.
DFB: Make sure QPixmap::hasAlpha is respected
fix build on mingw
Fix some painting issues in QDirectFBPaintEngine
QNAM: Do not need QNetworkSession in AlwaysCache load mode
Don't crash if QScriptClass property getter returns an invalid value
QNAM: Remove dead waitForUpstreamBytesWritten() code
QNAM: Remove dead waitForDownstreamReadyRead() code
fix memleak in test
Diffstat (limited to 'src/script/bridge/qscriptclassobject.cpp')
-rw-r--r-- | src/script/bridge/qscriptclassobject.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/script/bridge/qscriptclassobject.cpp b/src/script/bridge/qscriptclassobject.cpp index dd229f1..228e755 100644 --- a/src/script/bridge/qscriptclassobject.cpp +++ b/src/script/bridge/qscriptclassobject.cpp @@ -78,6 +78,12 @@ bool ClassObjectDelegate::getOwnPropertySlot(QScriptObject* object, scriptObject, scriptName, QScriptClass::HandlesReadAccess, &id); if (flags & QScriptClass::HandlesReadAccess) { QScriptValue value = m_scriptClass->property(scriptObject, scriptName, id); + if (!value.isValid()) { + // The class claims to have the property, but returned an invalid + // value. Silently convert to undefined to avoid the invalid value + // "escaping" into JS. + value = QScriptValue(QScriptValue::UndefinedValue); + } slot.setValue(engine->scriptValueToJSCValue(value)); return true; } @@ -119,6 +125,12 @@ bool ClassObjectDelegate::getOwnPropertyDescriptor(QScriptObject *object, attribs |= pflags & QScriptValue::UserRange; // Rather than calling the getter, we could return an access descriptor here. QScriptValue value = m_scriptClass->property(scriptObject, scriptName, id); + if (!value.isValid()) { + // The class claims to have the property, but returned an invalid + // value. Silently convert to undefined to avoid the invalid value + // "escaping" into JS. + value = QScriptValue(QScriptValue::UndefinedValue); + } descriptor.setDescriptor(engine->scriptValueToJSCValue(value), attribs); return true; } |