diff options
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject_p.h')
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject_p.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject_p.h b/src/qml/qml/qqmlvmemetaobject_p.h index 8b80d7f176..3ee13d95af 100644 --- a/src/qml/qml/qqmlvmemetaobject_p.h +++ b/src/qml/qml/qqmlvmemetaobject_p.h @@ -71,7 +71,7 @@ #include <private/qv8engine_p.h> #include <private/qflagpointer_p.h> -#include <private/qv8_p.h> +#include <private/qv4value_p.h> QT_BEGIN_NAMESPACE @@ -157,8 +157,7 @@ class QV8QObjectWrapper; class QQmlVMEVariant; class QQmlRefCount; class QQmlVMEMetaObjectEndpoint; -class Q_QML_PRIVATE_EXPORT QQmlVMEMetaObject : public QAbstractDynamicMetaObject, - public QV8GCCallback::Node +class Q_QML_PRIVATE_EXPORT QQmlVMEMetaObject : public QAbstractDynamicMetaObject { public: QQmlVMEMetaObject(QObject *obj, QQmlPropertyCache *cache, const QQmlVMEMetaData *data); @@ -166,11 +165,11 @@ public: bool aliasTarget(int index, QObject **target, int *coreIndex, int *valueTypeIndex) const; void registerInterceptor(int index, int valueIndex, QQmlPropertyValueInterceptor *interceptor); - v8::Handle<v8::Function> vmeMethod(int index); + QV4::Value vmeMethod(int index); quint16 vmeMethodLineNumber(int index); - void setVmeMethod(int index, v8::Persistent<v8::Function>); - v8::Handle<v8::Value> vmeProperty(int index); - void setVMEProperty(int index, v8::Handle<v8::Value> v); + void setVmeMethod(int index, QV4::PersistentValue function); + QV4::Value vmeProperty(int index); + void setVMEProperty(int index, const QV4::Value &v); void connectAliasSignal(int index, bool indexInSignalRange); @@ -203,24 +202,26 @@ public: QQmlVMEVariant *data; QQmlVMEMetaObjectEndpoint *aliasEndpoints; - v8::Persistent<v8::Array> varProperties; + QV4::WeakValue varProperties; int firstVarPropertyIndex; bool varPropertiesInitialized; - static void VarPropertiesWeakReferenceCallback(v8::Persistent<v8::Value> object, void* parameter); - static void GcPrologueCallback(QV8GCCallback::Node *node); inline void allocateVarPropertiesArray(); inline bool ensureVarPropertiesAllocated(); + void ensureQObjectWrapper(); + + void mark(); + void connectAlias(int aliasId); QBitArray aConnected; QQmlPropertyValueInterceptor *interceptors; - v8::Persistent<v8::Function> *v8methods; - v8::Handle<v8::Function> method(int); + QV4::PersistentValue *v8methods; + QV4::Value method(int); - v8::Handle<v8::Value> readVarProperty(int); - void writeVarProperty(int, v8::Handle<v8::Value>); + QV4::Value readVarProperty(int); + void writeVarProperty(int, const QV4::Value &); QVariant readPropertyAsVariant(int); void writeProperty(int, const QVariant &); |