diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2009-09-03 12:13:06 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2009-09-03 12:13:06 (GMT) |
commit | 0b9aa3653cc6c6ea75a79c3c8ff512b53dba13f1 (patch) | |
tree | 017f3b738d9281b55ceed6366e8f85204fc38b09 /src/script/api/qscriptstring_p.h | |
parent | 714e0f17aa3d26ddfd9ce6ff8b9f5efbae7a11e5 (diff) | |
parent | d4a4b01f2f08a9031d692344d0d264de472da25e (diff) | |
download | Qt-0b9aa3653cc6c6ea75a79c3c8ff512b53dba13f1.zip Qt-0b9aa3653cc6c6ea75a79c3c8ff512b53dba13f1.tar.gz Qt-0b9aa3653cc6c6ea75a79c3c8ff512b53dba13f1.tar.bz2 |
Merge branch '4.6'
Conflicts:
src/plugins/qpluginbase.pri
tests/benchmarks/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
tools/assistant/compat/mainwindow.cpp
tools/assistant/compat/mainwindow.ui
tools/assistant/tools/assistant/doc/assistant.qdocconf
Diffstat (limited to 'src/script/api/qscriptstring_p.h')
-rw-r--r-- | src/script/api/qscriptstring_p.h | 54 |
1 files changed, 39 insertions, 15 deletions
diff --git a/src/script/api/qscriptstring_p.h b/src/script/api/qscriptstring_p.h index 8f76648..05fed77 100644 --- a/src/script/api/qscriptstring_p.h +++ b/src/script/api/qscriptstring_p.h @@ -55,34 +55,58 @@ #include <QtCore/qobjectdefs.h> -#include <QtCore/qstring.h> -#include <QtCore/qpointer.h> -#include "qscriptengine.h" - #include "Identifier.h" - QT_BEGIN_NAMESPACE -class QScriptString; -class QScriptEngine; +class QScriptEnginePrivate; class QScriptStringPrivate { public: - QScriptStringPrivate(QScriptEngine *engine, const JSC::Identifier &id); - ~QScriptStringPrivate(); + enum AllocationType { + StackAllocated, + HeapAllocated + }; - static void init(QScriptString &q, QScriptEngine *engine, const JSC::Identifier &id); + inline QScriptStringPrivate(QScriptEnginePrivate *engine, const JSC::Identifier &id, + AllocationType type); + inline ~QScriptStringPrivate(); + static inline void init(QScriptString &q, QScriptStringPrivate *d); + + inline void detachFromEngine(); QBasicAtomicInt ref; -#ifndef QT_NO_QOBJECT - QPointer<QScriptEngine> engine; -#else - void *engine; -#endif + QScriptEnginePrivate *engine; JSC::Identifier identifier; + AllocationType type; + + // linked list of engine's script values + QScriptStringPrivate *prev; + QScriptStringPrivate *next; }; +inline QScriptStringPrivate::QScriptStringPrivate(QScriptEnginePrivate *e, const JSC::Identifier &id, + AllocationType tp) + : engine(e), identifier(id), type(tp), prev(0), next(0) +{ + ref = 0; +} + +inline QScriptStringPrivate::~QScriptStringPrivate() +{ +} + +inline void QScriptStringPrivate::init(QScriptString &q, QScriptStringPrivate *d) +{ + q.d_ptr = d; +} + +inline void QScriptStringPrivate::detachFromEngine() +{ + engine = 0; + identifier = JSC::Identifier(); +} + QT_END_NAMESPACE #endif |