[PATCH] winegstreamer: Remove some of casts that are not needed

Andrew Eikum aeikum at codeweavers.com
Fri Aug 26 11:09:38 CDT 2016


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Thu, Aug 25, 2016 at 11:16:09PM +0300, Nikolay Sivov wrote:
> Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
> ---
>  dlls/winegstreamer/gstdemux.c | 67 +++++++++++++++++++++----------------------
>  1 file changed, 33 insertions(+), 34 deletions(-)
> 
> diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
> index f257202..5db99c8 100644
> --- a/dlls/winegstreamer/gstdemux.c
> +++ b/dlls/winegstreamer/gstdemux.c
> @@ -788,7 +788,7 @@ static void init_new_decoded_pad(GstElement *bin, GstPad *pad, GSTImpl *This)
>      TRACE("%p %p %p\n", This, bin, pad);
>  
>      piOutput.dir = PINDIR_OUTPUT;
> -    piOutput.pFilter = (IBaseFilter *)This;
> +    piOutput.pFilter = &This->filter.IBaseFilter_iface;
>      name = gst_pad_get_name(pad);
>      MultiByteToWideChar(CP_UNIXCP, 0, name, -1, piOutput.achName, sizeof(piOutput.achName) / sizeof(piOutput.achName[0]) - 1);
>      TRACE("Name: %s\n", name);
> @@ -1193,20 +1193,20 @@ static inline GSTOutPin *impl_from_IMediaSeeking( IMediaSeeking *iface )
>  static IPin* WINAPI GST_GetPin(BaseFilter *iface, int pos)
>  {
>      GSTImpl *This = (GSTImpl *)iface;
> +    IPin *pin;
> +
>      TRACE("%p: Asking for pos %x\n", This, pos);
>  
>      if (pos > This->cStreams || pos < 0)
>          return NULL;
> +
>      if (!pos)
> -    {
> -        IPin_AddRef((IPin*)&This->pInputPin);
> -        return (IPin*)&This->pInputPin;
> -    }
> +        pin = &This->pInputPin.pin.IPin_iface;
>      else
> -    {
> -        IPin_AddRef((IPin*)This->ppPins[pos - 1]);
> -        return (IPin*)This->ppPins[pos - 1];
> -    }
> +        pin = &This->ppPins[pos - 1]->pin.pin.IPin_iface;
> +
> +    IPin_AddRef(pin);
> +    return pin;
>  }
>  
>  static LONG WINAPI GST_GetPinCount(BaseFilter *iface)
> @@ -1238,13 +1238,13 @@ IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr)
>      mark_wine_thread();
>  
>      This = CoTaskMemAlloc(sizeof(*This));
> -    obj = (IUnknown*)This;
>      if (!This)
>      {
>          *phr = E_OUTOFMEMORY;
>          return NULL;
>      }
>  
> +    obj = (IUnknown*)&This->filter.IBaseFilter_iface;
>      BaseFilter_Init(&This->filter, &GST_Vtbl, &CLSID_Gstreamer_Splitter, (DWORD_PTR)(__FILE__ ": GSTImpl.csFilter"), &BaseFuncTable);
>  
>      This->cStreams = 0;
> @@ -1255,7 +1255,7 @@ IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr)
>  
>      piInput = &This->pInputPin.pin.pinInfo;
>      piInput->dir = PINDIR_INPUT;
> -    piInput->pFilter = (IBaseFilter *)This;
> +    piInput->pFilter = &This->filter.IBaseFilter_iface;
>      lstrcpynW(piInput->achName, wcsInputPinName, sizeof(piInput->achName) / sizeof(piInput->achName[0]));
>      This->pInputPin.pin.IPin_iface.lpVtbl = &GST_InputPin_Vtbl;
>      This->pInputPin.pin.refCount = 1;
> @@ -1285,17 +1285,17 @@ static void GST_Destroy(GSTImpl *This)
>          hr = IPin_Disconnect(connected);
>          assert(hr == S_OK);
>          IPin_Release(connected);
> -        hr = IPin_Disconnect((IPin *)&This->pInputPin);
> +        hr = IPin_Disconnect(&This->pInputPin.pin.IPin_iface);
>          assert(hr == S_OK);
>      }
> -    pinref = IPin_Release((IPin *)&This->pInputPin);
> +    pinref = IPin_Release(&This->pInputPin.pin.IPin_iface);
>      if (pinref) {
>          /* Valgrind could find this, if I kill it here */
>          ERR("pinref should be null, is %u, destroying anyway\n", pinref);
>          assert((LONG)pinref > 0);
>  
>          while (pinref)
> -            pinref = IPin_Release((IPin *)&This->pInputPin);
> +            pinref = IPin_Release(&This->pInputPin.pin.IPin_iface);
>      }
>      if (This->bus) {
>          gst_bus_set_sync_handler(This->bus, NULL, NULL, NULL);
> @@ -1313,14 +1313,13 @@ static HRESULT WINAPI GST_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;
> +    }
>  
>      if (*ppv) {
>          IUnknown_AddRef((IUnknown *)(*ppv));
> @@ -1426,7 +1425,7 @@ static HRESULT WINAPI GST_Run(IBaseFilter *iface, REFERENCE_TIME tStart)
>      This->filter.rtStreamStart = tStart;
>  
>      for (i = 0; i < This->cStreams; i++) {
> -        hr = BaseOutputPinImpl_Active((BaseOutputPin *)This->ppPins[i]);
> +        hr = BaseOutputPinImpl_Active(&This->ppPins[i]->pin);
>          if (SUCCEEDED(hr)) {
>              hr_any = hr;
>          }
> @@ -1518,19 +1517,19 @@ static HRESULT WINAPI GST_ChangeRate(IMediaSeeking *iface)
>  static HRESULT WINAPI GST_Seeking_QueryInterface(IMediaSeeking *iface, REFIID riid, void **ppv)
>  {
>      GSTOutPin *This = impl_from_IMediaSeeking(iface);
> -    return IUnknown_QueryInterface((IUnknown *)This, riid, ppv);
> +    return IPin_QueryInterface(&This->pin.pin.IPin_iface, riid, ppv);
>  }
>  
>  static ULONG WINAPI GST_Seeking_AddRef(IMediaSeeking *iface)
>  {
>      GSTOutPin *This = impl_from_IMediaSeeking(iface);
> -    return IUnknown_AddRef((IUnknown *)This);
> +    return IPin_AddRef(&This->pin.pin.IPin_iface);
>  }
>  
>  static ULONG WINAPI GST_Seeking_Release(IMediaSeeking *iface)
>  {
>      GSTOutPin *This = impl_from_IMediaSeeking(iface);
> -    return IUnknown_Release((IUnknown *)This);
> +    return IPin_Release(&This->pin.pin.IPin_iface);
>  }
>  
>  static HRESULT WINAPI GST_Seeking_GetCurrentPosition(IMediaSeeking *iface, REFERENCE_TIME *pos)
> @@ -1650,25 +1649,25 @@ static const IMediaSeekingVtbl GST_Seeking_Vtbl =
>  
>  static inline GSTOutPin *impl_from_IQualityControl( IQualityControl *iface )
>  {
> -    return (GSTOutPin*)CONTAINING_RECORD(iface, GSTOutPin, IQualityControl_iface);
> +    return CONTAINING_RECORD(iface, GSTOutPin, IQualityControl_iface);
>  }
>  
>  static HRESULT WINAPI GST_QualityControl_QueryInterface(IQualityControl *iface, REFIID riid, void **ppv)
>  {
>      GSTOutPin *pin = impl_from_IQualityControl(iface);
> -    return IPin_QueryInterface((IPin*)pin, riid, ppv);
> +    return IPin_QueryInterface(&pin->pin.pin.IPin_iface, riid, ppv);
>  }
>  
>  static ULONG WINAPI GST_QualityControl_AddRef(IQualityControl *iface)
>  {
>      GSTOutPin *pin = impl_from_IQualityControl(iface);
> -    return IPin_AddRef((IPin*)pin);
> +    return IPin_AddRef(&pin->pin.pin.IPin_iface);
>  }
>  
>  static ULONG WINAPI GST_QualityControl_Release(IQualityControl *iface)
>  {
>      GSTOutPin *pin = impl_from_IQualityControl(iface);
> -    return IPin_Release((IPin*)pin);
> +    return IPin_Release(&pin->pin.pin.IPin_iface);
>  }
>  
>  static HRESULT WINAPI GST_QualityControl_Notify(IQualityControl *iface, IBaseFilter *sender, Quality qm)
> @@ -1889,13 +1888,13 @@ static HRESULT GST_AddPin(GSTImpl *This, const PIN_INFO *piOutput, const AM_MEDI
>          memset((char*)pin + sizeof(pin->pin), 0, sizeof(GSTOutPin) - sizeof(pin->pin));
>          pin->pmt = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE));
>          CopyMediaType(pin->pmt, amt);
> -        pin->pin.pin.pinInfo.pFilter = (LPVOID)This;
> +        pin->pin.pin.pinInfo.pFilter = &This->filter.IBaseFilter_iface;
>          pin->caps_event = CreateEventW(NULL, 0, 0, NULL);
>          pin->segment = gst_segment_new();
>          This->cStreams++;
>          pin->IQualityControl_iface.lpVtbl = &GSTOutPin_QualityControl_Vtbl;
>          SourceSeeking_Init(&pin->seek, &GST_Seeking_Vtbl, GST_ChangeStop, GST_ChangeCurrent, GST_ChangeRate, &This->filter.csFilter);
> -        BaseFilterImpl_IncrementPinVersion((BaseFilter*)This);
> +        BaseFilterImpl_IncrementPinVersion(&This->filter);
>      } else
>          ERR("Failed with error %x\n", hr);
>      return hr;
> @@ -1921,14 +1920,14 @@ static HRESULT GST_RemoveOutputPins(GSTImpl *This)
>      for (i = 0; i < This->cStreams; i++) {
>          hr = BaseOutputPinImpl_BreakConnect(&ppOldPins[i]->pin);
>          TRACE("Disconnect: %08x\n", hr);
> -        IPin_Release((IPin*)ppOldPins[i]);
> +        IPin_Release(&ppOldPins[i]->pin.pin.IPin_iface);
>      }
>      This->cStreams = 0;
>      This->ppPins = NULL;
>      gst_element_set_bus(This->container, NULL);
>      gst_object_unref(This->container);
>      This->container = NULL;
> -    BaseFilterImpl_IncrementPinVersion((BaseFilter*)This);
> +    BaseFilterImpl_IncrementPinVersion(&This->filter);
>      CoTaskMemFree(ppOldPins);
>      return S_OK;
>  }
> -- 
> 2.9.3
> 
> 
> 



More information about the wine-patches mailing list