summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine_p.h
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-07-08 16:15:49 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-07-08 16:17:37 (GMT)
commita4e0ae8af7b550117d1e9d9dbb90564d50985fe3 (patch)
treef74e6ab0ec829bca0ecea607d06a5d90aa445ecc /src/script/api/qscriptengine_p.h
parent9fa78177eb5f31e6941b165949957f2b92b8dd0a (diff)
downloadQt-a4e0ae8af7b550117d1e9d9dbb90564d50985fe3.zip
Qt-a4e0ae8af7b550117d1e9d9dbb90564d50985fe3.tar.gz
Qt-a4e0ae8af7b550117d1e9d9dbb90564d50985fe3.tar.bz2
rewrite most of QScriptContext handling
Do it The right way(TM), by lazily wrapping JSC::ExecState objects.
Diffstat (limited to 'src/script/api/qscriptengine_p.h')
-rw-r--r--src/script/api/qscriptengine_p.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/script/api/qscriptengine_p.h b/src/script/api/qscriptengine_p.h
index b3aab9b..0c1840e 100644
--- a/src/script/api/qscriptengine_p.h
+++ b/src/script/api/qscriptengine_p.h
@@ -39,6 +39,7 @@ QT_BEGIN_NAMESPACE
namespace JSC
{
+ class ExecState;
class JSCell;
class JSGlobalObject;
class UString;
@@ -105,6 +106,9 @@ public:
JSC::JSValue defaultPrototype(int metaTypeId) const;
void setDefaultPrototype(int metaTypeId, JSC::JSValue prototype);
+ QScriptContext *contextForFrame(JSC::ExecState *frame);
+ void releaseContextForFrame(JSC::ExecState *frame);
+
#ifndef QT_NO_QOBJECT
JSC::JSValue newQObject(QObject *object,
QScriptEngine::ValueOwnership ownership = QScriptEngine::QtOwnership,
@@ -153,7 +157,8 @@ public:
#endif
JSC::JSGlobalObject *globalObject;
- QScriptContext *currentContext;
+ JSC::ExecState *currentFrame;
+ QHash<JSC::ExecState*, QScriptContext*> contextForFrameHash;
JSC::JSValue uncaughtException;
QScript::QObjectPrototype *qobjectPrototype;