summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2012-12-11 17:13:26 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-11 18:13:03 +0100
commit12bbd990473677c5b3b1c37c317819e73b606e4a (patch)
treee49115c0803d4c42a5b4041ca973d9be2e5b9f99
parent3f84142aaa0c63edf6fdc1e144ab29be51a29af9 (diff)
WMF: Fixed crash when cancelling media loading.
Since media loading is asynchronous, cancelling could cause a crash when done after the media is loaded but the callback hasn't been called yet. Change-Id: I9c9b7bfaa495b9e75765111c15afb07e8b699488 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
-rw-r--r--src/plugins/wmf/sourceresolver.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/wmf/sourceresolver.cpp b/src/plugins/wmf/sourceresolver.cpp
index c5d99959a..9abe65845 100644
--- a/src/plugins/wmf/sourceresolver.cpp
+++ b/src/plugins/wmf/sourceresolver.cpp
@@ -108,6 +108,10 @@ STDMETHODIMP_(ULONG) SourceResolver::Release(void)
HRESULT STDMETHODCALLTYPE SourceResolver::Invoke(IMFAsyncResult *pAsyncResult)
{
QMutexLocker locker(&m_mutex);
+
+ if (!m_sourceResolver)
+ return S_OK;
+
MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;
IUnknown* pSource = NULL;
State *state = static_cast<State*>(pAsyncResult->GetStateNoAddRef());