aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvmemetaobject_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject_p.h')
-rw-r--r--src/qml/qml/qqmlvmemetaobject_p.h29
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 &);