diff options
Diffstat (limited to 'src/declarative/qml/v8/qv8bindings_p.h')
-rw-r--r-- | src/declarative/qml/v8/qv8bindings_p.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/declarative/qml/v8/qv8bindings_p.h b/src/declarative/qml/v8/qv8bindings_p.h index dd410dc048..b1bb169edb 100644 --- a/src/declarative/qml/v8/qv8bindings_p.h +++ b/src/declarative/qml/v8/qv8bindings_p.h @@ -56,6 +56,7 @@ #include <private/qdeclarativepropertycache_p.h> #include <private/qdeclarativeinstruction_p.h> #include <private/qdeclarativeexpression_p.h> +#include <private/qdeclarativecompiler_p.h> #include <private/qdeclarativebinding_p.h> #include <private/qflagpointer_p.h> @@ -66,12 +67,11 @@ QT_BEGIN_NAMESPACE class QDeclarativeCompiledData; class QV8BindingsPrivate; -class QV8Bindings : public QDeclarativeAbstractExpression, - public QDeclarativeRefCount +class QV8Bindings : public QDeclarativeAbstractExpression { public: - QV8Bindings(int index, int line, - QDeclarativeCompiledData *compiled, + QV8Bindings(QDeclarativeCompiledData::V8Program *, + int line, QDeclarativeContextData *context); virtual ~QV8Bindings(); @@ -111,16 +111,32 @@ public: inline void setUpdatingFlag(bool v) { instruction.setFlag2Value(v); } }; + inline void addref(); + inline void release(); + private: Q_DISABLE_COPY(QV8Bindings) - QUrl url; - int bindingsCount; + const QUrl &url() const; + const QString &urlString() const; + v8::Persistent<v8::Array> &functions() const; + + QDeclarativeCompiledData::V8Program *program; Binding *bindings; - v8::Persistent<v8::Array> functions; - QDeclarativeCompiledData *cdata; + int refCount; }; +void QV8Bindings::addref() +{ + ++refCount; +} + +void QV8Bindings::release() +{ + if (0 == --refCount) + delete this; +} + QT_END_NAMESPACE QT_END_HEADER |