Add QFastMetaBuilder
[profile/ivi/qtdeclarative.git] / src / declarative / qml / qdeclarativeparser_p.h
index 2386f85..023cb9c 100644 (file)
@@ -66,6 +66,8 @@
 #include <private/qdeclarativeglobal_p.h>
 #include <private/qdeclarativepool_p.h>
 #include <private/qfieldlist_p.h>
+#include <private/qdeclarativepropertycache_p.h>
+#include <private/qfastmetabuilder_p.h>
 
 QT_BEGIN_HEADER
 
@@ -230,6 +232,10 @@ namespace QDeclarativeParser
         int type;
         // The metaobject index of this property, or -1 if unknown.
         int index;
+        // The core data in the case of a regular property.  
+        // XXX This has to be a value now as the synthCache may change during
+        // compilation which invalidates pointers.  We should fix this.
+        QDeclarativePropertyCache::Data core;
 
         // Returns true if this is an empty property - both value and values
         // are unset.
@@ -369,6 +375,12 @@ namespace QDeclarativeParser
             QByteArray name;
             QDeclarativeParser::Property *defaultValue;
             LocationSpan location;
+
+            // Used by the compiler
+            QByteArray resolvedCustomTypeName;
+            QFastMetaBuilder::StringRef typeRef;
+            QFastMetaBuilder::StringRef nameRef;
+            QFastMetaBuilder::StringRef changedSignatureRef;
         };
         struct DynamicSignal {
             DynamicSignal();
@@ -377,6 +389,13 @@ namespace QDeclarativeParser
             QByteArray name;
             QList<QByteArray> parameterTypes;
             QList<QByteArray> parameterNames;
+
+            int parameterTypesLength() const;
+            int parameterNamesLength() const;
+
+            // Used by the compiler
+            QFastMetaBuilder::StringRef signatureRef;
+            QFastMetaBuilder::StringRef parameterNamesRef;
         };
         struct DynamicSlot {
             DynamicSlot();
@@ -386,6 +405,12 @@ namespace QDeclarativeParser
             QString body;
             QList<QByteArray> parameterNames;
             LocationSpan location;
+
+            int parameterNamesLength() const;
+
+            // Used by the compiler
+            QFastMetaBuilder::StringRef signatureRef;
+            QFastMetaBuilder::StringRef parameterNamesRef;
         };
 
         // The list of dynamic properties