[PATCH] wineqtdecoder: Improve some interface pointer casts

Nikolay Sivov nsivov at codeweavers.com
Sun Dec 11 06:29:51 CST 2016


---
 dlls/wineqtdecoder/qtsplitter.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index 7db7a28f97..585a9701a4 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -245,9 +245,9 @@ static const BaseFilterFuncTable BaseFuncTable = {
 
 IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
 {
-    IUnknown *obj = NULL;
     PIN_INFO *piInput;
     QTSplitter *This;
+    IUnknown *obj;
     static const WCHAR wcsInputPinName[] = {'I','n','p','u','t',' ','P','i','n',0};
 
     EnterMoviesOnThread(0);
@@ -255,7 +255,6 @@ IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
     RegisterWineDataHandler();
 
     This = CoTaskMemAlloc(sizeof(*This));
-    obj = (IUnknown*)This;
     if (!This)
     {
         *phr = E_OUTOFMEMORY;
@@ -285,6 +284,8 @@ IUnknown * CALLBACK QTSplitter_create(IUnknown *punkout, HRESULT *phr)
 
     SourceSeeking_Init(&This->sourceSeeking, &QT_Seeking_Vtbl, QTSplitter_ChangeStop, QTSplitter_ChangeStart, QTSplitter_ChangeRate,  &This->filter.csFilter);
 
+    obj = (IUnknown*)&This->filter.IBaseFilter_iface;
+
     *phr = S_OK;
     return obj;
 }
@@ -355,14 +356,13 @@ static HRESULT WINAPI QT_QueryInterface(IBaseFilter *iface, REFIID riid, LPVOID
 
     *ppv = NULL;
 
-    if (IsEqualIID(riid, &IID_IUnknown))
-        *ppv = This;
-    else if (IsEqualIID(riid, &IID_IPersist))
-        *ppv = This;
-    else if (IsEqualIID(riid, &IID_IMediaFilter))
-        *ppv = This;
-    else if (IsEqualIID(riid, &IID_IBaseFilter))
-        *ppv = This;
+    if (IsEqualIID(riid, &IID_IUnknown) ||
+        IsEqualIID(riid, &IID_IPersist) ||
+        IsEqualIID(riid, &IID_IMediaFilter) ||
+        IsEqualIID(riid, &IID_IBaseFilter))
+    {
+        *ppv = &This->filter.IBaseFilter_iface;
+    }
     else if (IsEqualIID(riid, &IID_IMediaSeeking))
         *ppv = &This->sourceSeeking;
 
@@ -1546,7 +1546,7 @@ static HRESULT QT_AddPin(QTSplitter *This, const PIN_INFO *piOutput, const AM_ME
         return E_FAIL;
     }
 
-    hr = BaseOutputPin_Construct(&QT_OutputPin_Vtbl, sizeof(QTOutPin), piOutput, &output_BaseOutputFuncTable, &This->filter.csFilter, (IPin**)target);
+    hr = BaseOutputPin_Construct(&QT_OutputPin_Vtbl, sizeof(QTOutPin), piOutput, &output_BaseOutputFuncTable, &This->filter.csFilter, target);
     if (SUCCEEDED(hr))
     {
         QTOutPin *pin = (QTOutPin*)*target;
-- 
2.11.0




More information about the wine-patches mailing list