Commit 6bd3b156 authored by Chris Robinson's avatar Chris Robinson Committed by Alexandre Julliard

quartz: Don't delete critical sections before the filter's pins are done using them.

parent 6e5b36d4
...@@ -400,8 +400,6 @@ static ULONG WINAPI DSoundRender_Release(IBaseFilter * iface) ...@@ -400,8 +400,6 @@ static ULONG WINAPI DSoundRender_Release(IBaseFilter * iface)
{ {
IPin *pConnectedTo; IPin *pConnectedTo;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
if (This->pClock) if (This->pClock)
IReferenceClock_Release(This->pClock); IReferenceClock_Release(This->pClock);
...@@ -425,6 +423,9 @@ static ULONG WINAPI DSoundRender_Release(IBaseFilter * iface) ...@@ -425,6 +423,9 @@ static ULONG WINAPI DSoundRender_Release(IBaseFilter * iface)
This->lpVtbl = NULL; This->lpVtbl = NULL;
This->IBasicAudio_vtbl = NULL; This->IBasicAudio_vtbl = NULL;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
TRACE("Destroying Audio Renderer\n"); TRACE("Destroying Audio Renderer\n");
CoTaskMemFree(This); CoTaskMemFree(This);
......
...@@ -187,8 +187,6 @@ static ULONG WINAPI Parser_Release(IBaseFilter * iface) ...@@ -187,8 +187,6 @@ static ULONG WINAPI Parser_Release(IBaseFilter * iface)
{ {
ULONG i; ULONG i;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
if (This->pClock) if (This->pClock)
IReferenceClock_Release(This->pClock); IReferenceClock_Release(This->pClock);
...@@ -208,6 +206,9 @@ static ULONG WINAPI Parser_Release(IBaseFilter * iface) ...@@ -208,6 +206,9 @@ static ULONG WINAPI Parser_Release(IBaseFilter * iface)
CoTaskMemFree(This->ppPins); CoTaskMemFree(This->ppPins);
This->lpVtbl = NULL; This->lpVtbl = NULL;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
TRACE("Destroying parser\n"); TRACE("Destroying parser\n");
CoTaskMemFree(This); CoTaskMemFree(This);
......
...@@ -276,9 +276,6 @@ static ULONG WINAPI TransformFilter_Release(IBaseFilter * iface) ...@@ -276,9 +276,6 @@ static ULONG WINAPI TransformFilter_Release(IBaseFilter * iface)
{ {
ULONG i; ULONG i;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
if (This->pClock) if (This->pClock)
IReferenceClock_Release(This->pClock); IReferenceClock_Release(This->pClock);
...@@ -301,6 +298,9 @@ static ULONG WINAPI TransformFilter_Release(IBaseFilter * iface) ...@@ -301,6 +298,9 @@ static ULONG WINAPI TransformFilter_Release(IBaseFilter * iface)
This->pFuncsTable->pfnCleanup(This); This->pFuncsTable->pfnCleanup(This);
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
TRACE("Destroying transform filter\n"); TRACE("Destroying transform filter\n");
CoTaskMemFree(This); CoTaskMemFree(This);
......
...@@ -524,9 +524,6 @@ static ULONG WINAPI VideoRenderer_Release(IBaseFilter * iface) ...@@ -524,9 +524,6 @@ static ULONG WINAPI VideoRenderer_Release(IBaseFilter * iface)
{ {
IPin *pConnectedTo; IPin *pConnectedTo;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
DestroyWindow(This->hWnd); DestroyWindow(This->hWnd);
PostThreadMessageA(This->ThreadID, WM_QUIT, 0, 0); PostThreadMessageA(This->ThreadID, WM_QUIT, 0, 0);
WaitForSingleObject(This->hThread, INFINITE); WaitForSingleObject(This->hThread, INFINITE);
...@@ -547,6 +544,9 @@ static ULONG WINAPI VideoRenderer_Release(IBaseFilter * iface) ...@@ -547,6 +544,9 @@ static ULONG WINAPI VideoRenderer_Release(IBaseFilter * iface)
CoTaskMemFree(This->ppPins); CoTaskMemFree(This->ppPins);
This->lpVtbl = NULL; This->lpVtbl = NULL;
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
TRACE("Destroying Video Renderer\n"); TRACE("Destroying Video Renderer\n");
CoTaskMemFree(This); CoTaskMemFree(This);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment