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

Alexandre Julliard julliard at winehq.org
Tue Jul 24 14:39:37 CDT 2012


Module: wine
Branch: master
Commit: b7efa00817ef7756ef22b8985756b58eb527f808
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b7efa00817ef7756ef22b8985756b58eb527f808

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue Jul 24 15:11:15 2012 +0900

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

---

 dlls/windowscodecs/info.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/windowscodecs/info.c b/dlls/windowscodecs/info.c
index 9531198..3c67eb7 100644
--- a/dlls/windowscodecs/info.c
+++ b/dlls/windowscodecs/info.c
@@ -1842,9 +1842,10 @@ static HRESULT WINAPI ComponentEnum_QueryInterface(IEnumUnknown *iface, REFIID i
 
     if (!ppv) return E_INVALIDARG;
 
-    if (IsEqualIID(&IID_IUnknown, iid) || IsEqualIID(&IID_IEnumUnknown, iid))
+    if (IsEqualIID(&IID_IUnknown, iid) ||
+        IsEqualIID(&IID_IEnumUnknown, iid))
     {
-        *ppv = This;
+        *ppv = &This->IEnumUnknown_iface;
     }
     else
     {
@@ -1996,11 +1997,11 @@ static HRESULT WINAPI ComponentEnum_Clone(IEnumUnknown *iface, IEnumUnknown **pp
 
     if (FAILED(ret))
     {
-        IUnknown_Release((IUnknown*)new_enum);
+        IEnumUnknown_Release(&new_enum->IEnumUnknown_iface);
         *ppenum = NULL;
     }
     else
-        *ppenum = (IEnumUnknown*)new_enum;
+        *ppenum = &new_enum->IEnumUnknown_iface;
 
     return ret;
 }
@@ -2091,13 +2092,13 @@ HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnkn
 
     if (SUCCEEDED(hr))
     {
-        IEnumUnknown_Reset((IEnumUnknown*)This);
-        *ppIEnumUnknown = (IEnumUnknown*)This;
+        IEnumUnknown_Reset(&This->IEnumUnknown_iface);
+        *ppIEnumUnknown = &This->IEnumUnknown_iface;
     }
     else
     {
         *ppIEnumUnknown = NULL;
-        IUnknown_Release((IUnknown*)This);
+        IEnumUnknown_Release(&This->IEnumUnknown_iface);
     }
 
     return hr;




More information about the wine-cvs mailing list