diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-01-25 22:22:47 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-05 18:29:23 +0100 |
commit | 843202b6083f2b9d01391558b7e6e3e0d014cca6 (patch) | |
tree | 55fb1d2ee3e5c882ef9b70fc72eaeca0b7724d56 /src/qml/jsruntime/qv4value_inl_p.h | |
parent | d89e2698669db83f0b3591ac43f054aacc8bfc85 (diff) |
Move PersistenValue and WeakValue into it's own file
They deserve having their own set of files, and it helps
reduce dependencies.
Change-Id: Ifd4394f88ef51cbccc61bf92dd20636f570141d9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4value_inl_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4value_inl_p.h | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/src/qml/jsruntime/qv4value_inl_p.h b/src/qml/jsruntime/qv4value_inl_p.h index 7ec7e12b16..d82af0643e 100644 --- a/src/qml/jsruntime/qv4value_inl_p.h +++ b/src/qml/jsruntime/qv4value_inl_p.h @@ -276,120 +276,6 @@ inline ErrorObject *Value::asErrorObject() const template<typename T> inline T *Value::as() const { Managed *m = isObject() ? managed() : 0; return m ? m->as<T>() : 0; } -struct Q_QML_PRIVATE_EXPORT PersistentValuePrivate -{ - PersistentValuePrivate(ReturnedValue v, ExecutionEngine *engine = 0, bool weak = false); - virtual ~PersistentValuePrivate(); - Value value; - uint refcount; - bool weak; - QV4::ExecutionEngine *engine; - PersistentValuePrivate **prev; - PersistentValuePrivate *next; - - void init(); - void removeFromList(); - void ref() { ++refcount; } - void deref(); - PersistentValuePrivate *detach(const ReturnedValue value, bool weak = false); - - bool checkEngine(QV4::ExecutionEngine *otherEngine) { - if (!engine) { - Q_ASSERT(!value.isObject()); - engine = otherEngine; - } - return (engine == otherEngine); - } -}; - -class Q_QML_EXPORT PersistentValue -{ -public: - PersistentValue() : d(0) {} - PersistentValue(const PersistentValue &other); - PersistentValue &operator=(const PersistentValue &other); - - PersistentValue(const ValueRef val); - PersistentValue(ReturnedValue val); - template<typename T> - PersistentValue(Returned<T> *obj); - template<typename T> - PersistentValue(const Referenced<T> obj); - PersistentValue &operator=(const ValueRef other); - PersistentValue &operator =(ReturnedValue other); - template<typename T> - PersistentValue &operator=(Returned<T> *obj); - template<typename T> - PersistentValue &operator=(const Referenced<T> obj); - ~PersistentValue(); - - ReturnedValue value() const { - return (d ? d->value.asReturnedValue() : Primitive::undefinedValue().asReturnedValue()); - } - - ExecutionEngine *engine() { - if (!d) - return 0; - if (d->engine) - return d->engine; - Managed *m = d->value.asManaged(); - return m ? m->engine() : 0; - } - - bool isUndefined() const { return !d || d->value.isUndefined(); } - bool isNullOrUndefined() const { return !d || d->value.isNullOrUndefined(); } - void clear() { - *this = PersistentValue(); - } - -private: - friend struct ValueRef; - PersistentValuePrivate *d; -}; - -class Q_QML_EXPORT WeakValue -{ -public: - WeakValue() : d(0) {} - WeakValue(const ValueRef val); - WeakValue(const WeakValue &other); - WeakValue(ReturnedValue val); - template<typename T> - WeakValue(Returned<T> *obj); - WeakValue &operator=(const WeakValue &other); - WeakValue &operator=(const ValueRef other); - WeakValue &operator =(const ReturnedValue &other); - template<typename T> - WeakValue &operator=(Returned<T> *obj); - - ~WeakValue(); - - ReturnedValue value() const { - return (d ? d->value.asReturnedValue() : Primitive::undefinedValue().asReturnedValue()); - } - - ExecutionEngine *engine() { - if (!d) - return 0; - if (d->engine) - return d->engine; - Managed *m = d->value.asManaged(); - return m ? m->engine() : 0; - } - - bool isUndefined() const { return !d || d->value.isUndefined(); } - bool isNullOrUndefined() const { return !d || d->value.isNullOrUndefined(); } - void clear() { - *this = WeakValue(); - } - - void markOnce(ExecutionEngine *e); - -private: - friend struct ValueRef; - PersistentValuePrivate *d; -}; - } // namespace QV4 QT_END_NAMESPACE |