summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r--src/script/api/qscriptengine.cpp56
1 files changed, 6 insertions, 50 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index afbe6bb..631175a 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -791,7 +791,7 @@ static QScriptValue __setupPackage__(QScriptContext *ctx, QScriptEngine *eng)
} // namespace QScript
QScriptEnginePrivate::QScriptEnginePrivate()
- : registeredScriptValues(0), inEval(false)
+ : registeredScriptValues(0), freeScriptValues(0), inEval(false)
{
qMetaTypeId<QScriptValue>();
@@ -836,6 +836,11 @@ QScriptEnginePrivate::QScriptEnginePrivate()
QScriptEnginePrivate::~QScriptEnginePrivate()
{
+ while (freeScriptValues) {
+ QScriptValuePrivate *p = freeScriptValues;
+ freeScriptValues = p->next;
+ qFree(p);
+ }
while (!ownedAgents.isEmpty())
delete ownedAgents.takeFirst();
detachAllRegisteredScriptValues();
@@ -846,34 +851,6 @@ QScriptEnginePrivate::~QScriptEnginePrivate()
globalData->deref();
}
-QScriptValue QScriptEnginePrivate::scriptValueFromJSCValue(JSC::JSValue value)
-{
- if (!value)
- return QScriptValue();
-
- QScriptValuePrivate *p_value = new QScriptValuePrivate();
- p_value->engine = this;
- p_value->initFrom(value);
- return QScriptValuePrivate::toPublic(p_value);
-}
-
-JSC::JSValue QScriptEnginePrivate::scriptValueToJSCValue(const QScriptValue &value)
-{
- QScriptValuePrivate *vv = QScriptValuePrivate::get(value);
- if (!vv)
- return JSC::JSValue();
- if (vv->type != QScriptValuePrivate::JSC) {
- Q_ASSERT(!vv->engine || vv->engine == this);
- vv->engine = this;
- if (vv->type == QScriptValuePrivate::Number) {
- vv->initFrom(JSC::jsNumber(currentFrame, vv->numberValue));
- } else { //QScriptValuePrivate::String
- vv->initFrom(JSC::jsString(currentFrame, vv->stringValue));
- }
- }
- return vv->jscValue;
-}
-
QScriptValue QScriptEnginePrivate::scriptValueFromVariant(const QVariant &v)
{
Q_Q(QScriptEngine);
@@ -1362,27 +1339,6 @@ bool QScriptEnginePrivate::scriptDisconnect(JSC::JSValue signal, JSC::JSValue re
#endif
-void QScriptEnginePrivate::registerScriptValue(QScriptValuePrivate *value)
-{
- value->prev = 0;
- value->next = registeredScriptValues;
- if (registeredScriptValues)
- registeredScriptValues->prev = value;
- registeredScriptValues = value;
-}
-
-void QScriptEnginePrivate::unregisterScriptValue(QScriptValuePrivate *value)
-{
- if (value->prev)
- value->prev->next = value->next;
- if (value->next)
- value->next->prev = value->prev;
- if (value == registeredScriptValues)
- registeredScriptValues = value->next;
- value->prev = 0;
- value->next = 0;
-}
-
void QScriptEnginePrivate::detachAllRegisteredScriptValues()
{
QScriptValuePrivate *it;