From 843202b6083f2b9d01391558b7e6e3e0d014cca6 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sat, 25 Jan 2014 22:22:47 +0100 Subject: 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 --- src/qml/jsruntime/qv4value_inl_p.h | 114 ------------------------------------- 1 file changed, 114 deletions(-) (limited to 'src/qml/jsruntime/qv4value_inl_p.h') 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 inline T *Value::as() const { Managed *m = isObject() ? managed() : 0; return m ? m->as() : 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 - PersistentValue(Returned *obj); - template - PersistentValue(const Referenced obj); - PersistentValue &operator=(const ValueRef other); - PersistentValue &operator =(ReturnedValue other); - template - PersistentValue &operator=(Returned *obj); - template - PersistentValue &operator=(const Referenced 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 - WeakValue(Returned *obj); - WeakValue &operator=(const WeakValue &other); - WeakValue &operator=(const ValueRef other); - WeakValue &operator =(const ReturnedValue &other); - template - WeakValue &operator=(Returned *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 -- cgit v1.2.3