diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-11 01:36:57 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-11 01:36:57 (GMT) |
commit | 738fe5730a55279bf3c033bad7317768d81f40af (patch) | |
tree | 1b1c8df3ed26aa338008df672529d0aa228c93a0 /src/declarative/qml/qmlengine_p.h | |
parent | ac19c9a30a47bfe8b374d390525b06ebdb26b4ca (diff) | |
download | Qt-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.h | 31 |
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; |