[1/2] strmbase: Separate BaseFilter destructor from Release.
Thomas Faber
thomas.faber at reactos.org
Sat Jul 19 02:45:04 CDT 2014
From f97cdde291dc3926369b19c949808f1309d8ad4c Mon Sep 17 00:00:00 2001
From: Thomas Faber <thomas.faber at reactos.org>
Date: Fri, 18 Jul 2014 22:19:40 +0200
Subject: strmbase: Separate BaseFilter destructor from Release.
---
dlls/strmbase/filter.c | 21 +++++++++++++--------
include/wine/strmbase.h | 1 +
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/dlls/strmbase/filter.c b/dlls/strmbase/filter.c
index e2cf807..697b243 100644
--- a/dlls/strmbase/filter.c
+++ b/dlls/strmbase/filter.c
@@ -69,14 +69,7 @@ ULONG WINAPI BaseFilterImpl_Release(IBaseFilter * iface)
TRACE("(%p)->() Release from %d\n", This, refCount + 1);
if (!refCount)
- {
- if (This->pClock)
- IReferenceClock_Release(This->pClock);
-
- This->IBaseFilter_iface.lpVtbl = NULL;
- This->csFilter.DebugInfo->Spare[0] = 0;
- DeleteCriticalSection(&This->csFilter);
- }
+ BaseFilter_Destroy(This);
return refCount;
}
@@ -218,3 +211,15 @@ HRESULT WINAPI BaseFilter_Init(BaseFilter * This, const IBaseFilterVtbl *Vtbl, c
return S_OK;
}
+
+HRESULT WINAPI BaseFilter_Destroy(BaseFilter * This)
+{
+ if (This->pClock)
+ IReferenceClock_Release(This->pClock);
+
+ This->IBaseFilter_iface.lpVtbl = NULL;
+ This->csFilter.DebugInfo->Spare[0] = 0;
+ DeleteCriticalSection(&This->csFilter);
+
+ return S_OK;
+}
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 9727fb4..1370198 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -194,6 +194,7 @@ LONG WINAPI BaseFilterImpl_GetPinVersion(BaseFilter* This);
VOID WINAPI BaseFilterImpl_IncrementPinVersion(BaseFilter* This);
HRESULT WINAPI BaseFilter_Init(BaseFilter * This, const IBaseFilterVtbl *Vtbl, const CLSID *pClsid, DWORD_PTR DebugInfo, const BaseFilterFuncTable* pBaseFuncsTable);
+HRESULT WINAPI BaseFilter_Destroy(BaseFilter * This);
/* Enums */
HRESULT WINAPI EnumMediaTypes_Construct(BasePin *iface, BasePin_GetMediaType enumFunc, BasePin_GetMediaTypeVersion versionFunc, IEnumMediaTypes ** ppEnum);
--
1.9.0.msysgit.0
More information about the wine-patches
mailing list