aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorDaiwei Li <daiweili@suitabletech.com>2015-01-23 14:33:35 -0800
committerDaiwei Li <daiweili@suitabletech.com>2015-02-06 16:01:42 +0000
commitda6360b85d311d94b8d19126286404c0cc8c76fe (patch)
tree1810956c48df212b04944ab3ea96e71cc5ea7dd0 /src/qml/qml/qqmltypeloader.cpp
parentfe9ce8f4842cf2fbc0ebb87fa7b2fabb62bde643 (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.cpp11
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()