WMF: Fixed crash when cancelling media loading.
authorYoann Lopes <yoann.lopes@digia.com>
Tue, 11 Dec 2012 16:13:26 +0000 (17:13 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 11 Dec 2012 17:13:03 +0000 (18:13 +0100)
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>
src/plugins/wmf/sourceresolver.cpp

index c5d9995..9abe658 100644 (file)
@@ -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());