summaryrefslogtreecommitdiffstats
path: root/src/script/bridge/qscriptobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/bridge/qscriptobject.cpp')
-rw-r--r--src/script/bridge/qscriptobject.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/script/bridge/qscriptobject.cpp b/src/script/bridge/qscriptobject.cpp
index b657af7..5cf415a 100644
--- a/src/script/bridge/qscriptobject.cpp
+++ b/src/script/bridge/qscriptobject.cpp
@@ -113,7 +113,8 @@ void QScriptObject::getPropertyNames(JSC::ExecState* exec, JSC::PropertyNameArra
void QScriptObject::mark()
{
- if (d && d->data)
+ Q_ASSERT(!marked());
+ if (d && d->data && !d->data.marked())
d->data.mark();
if (!d || !d->delegate) {
JSC::JSObject::mark();
@@ -203,7 +204,8 @@ void QScriptObjectDelegate::getPropertyNames(QScriptObject* object, JSC::ExecSta
void QScriptObjectDelegate::mark(QScriptObject* object)
{
- object->JSC::JSObject::mark();
+ if (!object->marked())
+ object->JSC::JSObject::mark();
}
JSC::CallType QScriptObjectDelegate::getCallData(QScriptObject* object, JSC::CallData& data)