summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-07-16 14:50:50 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-07-16 14:50:50 (GMT)
commit898437f97e3f3bbb96b501148d5f883d099133f7 (patch)
treedbe476f9d08df10fae21900739e6a44c433b9642 /src/script/api/qscriptengine.cpp
parentb6e5b8116ed297cdc127485c914e461d0cf7c56b (diff)
downloadQt-898437f97e3f3bbb96b501148d5f883d099133f7.zip
Qt-898437f97e3f3bbb96b501148d5f883d099133f7.tar.gz
Qt-898437f97e3f3bbb96b501148d5f883d099133f7.tar.bz2
start implementing constructors for QMetaObject wrappers
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r--src/script/api/qscriptengine.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index b5ba4ff..af09572 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -669,8 +669,8 @@ JSC::JSValue functionPrint(JSC::ExecState* exec, JSC::JSObject*, JSC::JSValue, c
JSC::JSValue functionGC(JSC::ExecState* exec, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&)
{
- JSC::JSLock lock(false);
- exec->heap()->collect();
+ QScriptEnginePrivate *engine = static_cast<GlobalObject*>(exec->lexicalGlobalObject())->engine;
+ engine->collectGarbage();
return JSC::jsUndefined();
}
@@ -1050,6 +1050,15 @@ bool QScriptEnginePrivate::isCollecting() const
return globalObject->globalData()->heap.isBusy();
}
+void QScriptEnginePrivate::collectGarbage()
+{
+ // ### why isn't the global object always marked by the Collector?
+ if (!globalObject->marked())
+ globalObject->mark();
+ JSC::JSLock lock(false);
+ globalData->heap.collect();
+}
+
#ifndef QT_NO_QOBJECT
JSC::JSValue QScriptEnginePrivate::newQObject(
@@ -3135,11 +3144,7 @@ QStringList QScriptEngine::importedExtensions() const
void QScriptEngine::collectGarbage()
{
Q_D(QScriptEngine);
- // ### why isn't the global object always marked by the Collector?
- if (!d->globalObject->marked())
- d->globalObject->mark();
- JSC::JSLock lock(false);
- d->globalData->heap.collect();
+ d->collectGarbage();
}
/*!