Thomas Faber : strmbase: Destroy base class after child class.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 21 13:37:10 CDT 2014
Module: wine
Branch: master
Commit: 3dbcadc2785236c2518777d592d17853ea260f0b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3dbcadc2785236c2518777d592d17853ea260f0b
Author: Thomas Faber <thomas.faber at reactos.org>
Date: Fri Jul 18 22:23:36 2014 +0200
strmbase: Destroy base class after child class.
---
dlls/strmbase/renderer.c | 3 ++-
dlls/strmbase/transform.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index bb91236..766e467 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -294,7 +294,7 @@ HRESULT WINAPI BaseRendererImpl_QueryInterface(IBaseFilter* iface, REFIID riid,
ULONG WINAPI BaseRendererImpl_Release(IBaseFilter* iface)
{
BaseRenderer *This = impl_from_IBaseFilter(iface);
- ULONG refCount = BaseFilterImpl_Release(iface);
+ ULONG refCount = InterlockedDecrement(&This->filter.refCount);
if (!refCount)
{
@@ -319,6 +319,7 @@ ULONG WINAPI BaseRendererImpl_Release(IBaseFilter* iface)
CloseHandle(This->ThreadSignal);
CloseHandle(This->RenderEvent);
QualityControlImpl_Destroy(This->qcimpl);
+ BaseFilter_Destroy(&This->filter);
}
return refCount;
}
diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c
index eba7ad2..0fc7515 100644
--- a/dlls/strmbase/transform.c
+++ b/dlls/strmbase/transform.c
@@ -313,7 +313,7 @@ HRESULT WINAPI TransformFilterImpl_QueryInterface(IBaseFilter * iface, REFIID ri
ULONG WINAPI TransformFilterImpl_Release(IBaseFilter * iface)
{
TransformFilter *This = impl_from_IBaseFilter(iface);
- ULONG refCount = BaseFilterImpl_Release(iface);
+ ULONG refCount = InterlockedDecrement(&This->filter.refCount);
TRACE("(%p/%p)->() Release from %d\n", This, iface, refCount + 1);
@@ -343,6 +343,7 @@ ULONG WINAPI TransformFilterImpl_Release(IBaseFilter * iface)
FreeMediaType(&This->pmt);
QualityControlImpl_Destroy(This->qcimpl);
IUnknown_Release(This->seekthru_unk);
+ BaseFilter_Destroy(&This->filter);
CoTaskMemFree(This);
return 0;
More information about the wine-cvs
mailing list