From 55f4665a8d9bd7ccc3f59b76878f5adddd4e6d69 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Thu, 2 Jul 2009 12:36:12 +0200 Subject: implement marking of QObject connection --- src/script/bridge/qscriptqobject.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp index 3cd0091..a33f001 100644 --- a/src/script/bridge/qscriptqobject.cpp +++ b/src/script/bridge/qscriptqobject.cpp @@ -66,17 +66,18 @@ struct QObjectConnection void mark() { - Q_ASSERT_X(false, Q_FUNC_INFO, "implement me"); -/* if (senderWrapper && !senderWrapper->isMarked()) { + if (senderWrapper && !senderWrapper.marked()) { // see if the sender should be marked or not - if ((inst->ownership == QScriptEngine::ScriptOwnership) - || ((inst->ownership == QScriptEngine::AutoOwnership) - && inst->value && !inst->value->parent())) { - senderWrapper.invalidate(); + Q_ASSERT(JSC::asObject(senderWrapper)->inherits(&QObjectWrapperObject::info)); + QObjectWrapperObject *inst = static_cast(JSC::asObject(senderWrapper)); + if ((inst->ownership() == QScriptEngine::ScriptOwnership) + || ((inst->ownership() == QScriptEngine::AutoOwnership) + && inst->value() && !inst->value()->parent())) { + senderWrapper = JSC::JSValue(); } else { - senderWrapper.mark(generation); + senderWrapper.mark(); } - }*/ + } if (receiver) receiver.mark(); if (slot) -- cgit v0.12