diff options
author | Daiwei Li <daiweili@suitabletech.com> | 2015-01-23 14:33:35 -0800 |
---|---|---|
committer | Daiwei Li <daiweili@suitabletech.com> | 2015-02-06 16:01:42 +0000 |
commit | da6360b85d311d94b8d19126286404c0cc8c76fe (patch) | |
tree | 1810956c48df212b04944ab3ea96e71cc5ea7dd0 /src/qml/qml/qqmltypeloader.cpp | |
parent | fe9ce8f4842cf2fbc0ebb87fa7b2fabb62bde643 (diff) |
Fix crash when invalidating qqmltypeloader
Change-Id: I16db2ea9a6c25d26e2b803b9bb8d9ef7156e254d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 1b222fe1a3..0ac1d7fabd 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -903,15 +903,18 @@ QQmlDataLoader::~QQmlDataLoader() void QQmlDataLoader::invalidate() { - for (NetworkReplies::Iterator iter = m_networkReplies.begin(); iter != m_networkReplies.end(); ++iter) - (*iter)->release(); - m_networkReplies.clear(); - if (m_thread) { shutdownThread(); delete m_thread; m_thread = 0; } + + // Need to delete the network replies after + // the loader thread is shutdown as it could be + // getting new replies while we clear them + for (NetworkReplies::Iterator iter = m_networkReplies.begin(); iter != m_networkReplies.end(); ++iter) + (*iter)->release(); + m_networkReplies.clear(); } void QQmlDataLoader::lock() |