windowscodecs: Do not assume that vtable is the first element of the object, avoid not necessary casts. Resend.

Dmitry Timoshkov dmitry at baikal.ru
Tue Jul 24 21:23:43 CDT 2012


The patch is marked as 'build failure', but it builds just fine here.
What kind of build failure is that?
---
 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 c777581..11ea023 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);
+        IWICBitmapEncoder_Release(&This->encoder.IWICBitmapEncoder_iface);
         HeapFree(GetProcessHeap(), 0, This);
     }
 
@@ -533,7 +533,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
     {
@@ -683,7 +683,7 @@ static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
     frameEncode->committed = FALSE;
     *ppIFrameEncode = &frameEncode->IWICBitmapFrameEncode_iface;
     This->outstanding_commits++;
-    IUnknown_AddRef((IUnknown*)This);
+    IWICBitmapEncoder_AddRef(&This->encoder.IWICBitmapEncoder_iface);
 
 end:
     LeaveCriticalSection(&This->lock);
@@ -771,8 +771,8 @@ HRESULT IcnsEncoder_CreateInstance(IUnknown *pUnkOuter, 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 = IWICBitmapEncoder_QueryInterface(&This->IWICBitmapEncoder_iface, iid, ppv);
+    IWICBitmapEncoder_Release(&This->IWICBitmapEncoder_iface);
 
     return ret;
 }
-- 
1.7.11.2




More information about the wine-patches mailing list