summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlvmemetaobject_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-07-02 11:06:32 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-07-02 12:36:43 (GMT)
commitbdaf37f74e69f74c8fec23739e4dad23121af415 (patch)
treec84fb1a1698c926af083751d4d2112a0bcd48941 /src/declarative/qml/qmlvmemetaobject_p.h
parent8491b0476a221cf136b412bda532662a69063045 (diff)
downloadQt-bdaf37f74e69f74c8fec23739e4dad23121af415.zip
Qt-bdaf37f74e69f74c8fec23739e4dad23121af415.tar.gz
Qt-bdaf37f74e69f74c8fec23739e4dad23121af415.tar.bz2
Support parameterized synthesized methods
Diffstat (limited to 'src/declarative/qml/qmlvmemetaobject_p.h')
-rw-r--r--src/declarative/qml/qmlvmemetaobject_p.h59
1 files changed, 43 insertions, 16 deletions
diff --git a/src/declarative/qml/qmlvmemetaobject_p.h b/src/declarative/qml/qmlvmemetaobject_p.h
index 45fb33d..6421c3f 100644
--- a/src/declarative/qml/qmlvmemetaobject_p.h
+++ b/src/declarative/qml/qmlvmemetaobject_p.h
@@ -59,11 +59,45 @@
#include <private/qobject_p.h>
QT_BEGIN_NAMESPACE
+
+struct QmlVMEMetaData
+{
+ short propertyCount;
+ short aliasCount;
+ short signalCount;
+ short methodCount;
+
+ struct AliasData {
+ int contextIdx;
+ int propertyIdx;
+ };
+
+ struct PropertyData {
+ int propertyType;
+ };
+
+ struct MethodData {
+ int parameterCount;
+ };
+
+ PropertyData *propertyData() const {
+ return (PropertyData *)(((const char *)this) + sizeof(QmlVMEMetaData));
+ }
+
+ AliasData *aliasData() const {
+ return (AliasData *)(propertyData() + propertyCount);
+ }
+
+ MethodData *methodData() const {
+ return (MethodData *)(aliasData() + propertyCount);
+ }
+};
+
class QmlRefCount;
class QmlVMEMetaObject : public QAbstractDynamicMetaObject
{
public:
- QmlVMEMetaObject(QObject *, const QMetaObject *, QList<QString> *, int slotData, const QByteArray &aliasData, QmlRefCount * = 0);
+ QmlVMEMetaObject(QObject *, const QMetaObject *, QList<QString> *, int slotData, const QmlVMEMetaData *data, QmlRefCount * = 0);
~QmlVMEMetaObject();
protected:
@@ -72,26 +106,19 @@ protected:
private:
QObject *object;
QmlRefCount *ref;
- int baseProp;
- int baseSig;
- int baseSlot;
- int slotCount;
+
+ const QmlVMEMetaData *metaData;
+ int propOffset;
+ int methodOffset;
+
QVariant *data;
- QBitArray vTypes;
QBitArray aConnected;
+
QList<QString> *slotData;
int slotDataIdx;
+
QAbstractDynamicMetaObject *parent;
- QByteArray aliasData;
- struct Aliases {
- int aliasCount;
- int propCount;
- int signalOffset;
- } *aliases;
- struct AliasArray {
- int contextIdx;
- int propIdx;
- } *aliasArray;
+
};
QT_END_NAMESPACE