summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlengine_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-05-11 01:36:57 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-05-11 01:36:57 (GMT)
commit738fe5730a55279bf3c033bad7317768d81f40af (patch)
tree1b1c8df3ed26aa338008df672529d0aa228c93a0 /src/declarative/qml/qmlengine_p.h
parentac19c9a30a47bfe8b374d390525b06ebdb26b4ca (diff)
downloadQt-738fe5730a55279bf3c033bad7317768d81f40af.zip
Qt-738fe5730a55279bf3c033bad7317768d81f40af.tar.gz
Qt-738fe5730a55279bf3c033bad7317768d81f40af.tar.bz2
Handle QmlParserStatus's and QmlBindableValeus being deleted during component creation
Diffstat (limited to 'src/declarative/qml/qmlengine_p.h')
-rw-r--r--src/declarative/qml/qmlengine_p.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h
index 63df0ba..9402fa9 100644
--- a/src/declarative/qml/qmlengine_p.h
+++ b/src/declarative/qml/qmlengine_p.h
@@ -107,8 +107,35 @@ public:
QScriptEngine scriptEngine;
- QList<QmlBindableValue *> currentBindValues;
- QList<QmlParserStatus *> currentParserStatus;
+ template<class T>
+ struct SimpleList {
+ SimpleList()
+ : count(0), values(0) {}
+ SimpleList(int r)
+ : count(0), values(new T*[r]) {}
+
+ int count;
+ T **values;
+
+ void append(T *v) {
+ values[count++] = v;
+ }
+
+ T *at(int idx) const {
+ return values[idx];
+ }
+
+ void clear() {
+ delete [] values;
+ }
+ };
+
+ static void clear(SimpleList<QmlBindableValue> &);
+ static void clear(SimpleList<QmlParserStatus> &);
+
+ QList<SimpleList<QmlBindableValue> > bindValues;
+ QList<SimpleList<QmlParserStatus> > parserStatus;
+
QmlComponent *rootComponent;
mutable QNetworkAccessManager *networkAccessManager;