[2/2] windowscodecs: Distinguish interface and implementation pointer for IcnsEncoder.

Nikolay Sivov bunglehead at gmail.com
Mon Jun 29 02:00:58 CDT 2015


On 29.06.2015 9:08, Sebastian Lackner wrote:
> ---
>   dlls/windowscodecs/icnsformat.c |   10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/dlls/windowscodecs/icnsformat.c b/dlls/windowscodecs/icnsformat.c
> index 5ce44a2..3f24e91 100644
> --- a/dlls/windowscodecs/icnsformat.c
> +++ b/dlls/windowscodecs/icnsformat.c
> @@ -179,7 +179,7 @@ static ULONG WINAPI IcnsFrameEncode_Release(IWICBitmapFrameEncode *iface)
>           if (This->icns_image != NULL)
>               HeapFree(GetProcessHeap(), 0, This->icns_image);
>
> -        IUnknown_Release((IUnknown*)This->encoder);
> +        IUnknown_Release(&This->encoder->IWICBitmapFrameEncode_iface);
>           HeapFree(GetProcessHeap(), 0, This);
>       }
>
> @@ -489,7 +489,7 @@ static HRESULT WINAPI IcnsEncoder_QueryInterface(IWICBitmapEncoder *iface, REFII
>       if (IsEqualIID(&IID_IUnknown, iid) ||
>           IsEqualIID(&IID_IWICBitmapEncoder, iid))
>       {
> -        *ppv = This;
> +        *ppv = &This->IWICBitmapEncoder_iface;
>       }
>       else
>       {
> @@ -639,7 +639,7 @@ static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
>       frameEncode->committed = FALSE;
>       *ppIFrameEncode = &frameEncode->IWICBitmapFrameEncode_iface;
>       This->outstanding_commits++;
> -    IUnknown_AddRef((IUnknown*)This);
> +    IUnknown_AddRef(&This->IWICBitmapEncoder_iface);
>
>   end:
>       LeaveCriticalSection(&This->lock);
> @@ -725,8 +725,8 @@ HRESULT IcnsEncoder_CreateInstance(REFIID iid, void** ppv)
>       InitializeCriticalSection(&This->lock);
>       This->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IcnsEncoder.lock");
>
> -    ret = IUnknown_QueryInterface((IUnknown*)This, iid, ppv);
> -    IUnknown_Release((IUnknown*)This);
> +    ret = IUnknown_QueryInterface(&This->IWICBitmapEncoder_iface, iid, ppv);
> +    IUnknown_Release(&This->IWICBitmapEncoder_iface);
>
>       return ret;
>   }
>

Please use proper wrappers for that.



More information about the wine-devel mailing list