[PATCH 1/3] oleaut32: COM cleanup for ITypeLib object

Andrew Eikum aeikum at codeweavers.com
Wed May 8 15:12:41 CDT 2013


---
 dlls/oleaut32/typelib.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 6d37bd4..e62fa84 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -984,7 +984,7 @@ typedef struct tagTLBImpLib
 typedef struct tagITypeLibImpl
 {
     ITypeLib2 ITypeLib2_iface;
-    const ITypeCompVtbl *lpVtblTypeComp;
+    ITypeComp ITypeComp_iface;
     LONG ref;
     TLIBATTR LibAttr;            /* guid,lcid,syskind,version,flags */
     LCID lcid;
@@ -1020,7 +1020,7 @@ static const ITypeCompVtbl tlbtcvt;
 
 static inline ITypeLibImpl *impl_from_ITypeComp( ITypeComp *iface )
 {
-    return (ITypeLibImpl *)((char*)iface - FIELD_OFFSET(ITypeLibImpl, lpVtblTypeComp));
+    return CONTAINING_RECORD(iface, ITypeLibImpl, ITypeComp_iface);
 }
 
 /* ITypeLib methods */
@@ -2988,7 +2988,7 @@ static ITypeLibImpl* TypeLibImpl_Constructor(void)
     if (!pTypeLibImpl) return NULL;
 
     pTypeLibImpl->ITypeLib2_iface.lpVtbl = &tlbvt;
-    pTypeLibImpl->lpVtblTypeComp = &tlbtcvt;
+    pTypeLibImpl->ITypeComp_iface.lpVtbl = &tlbtcvt;
     pTypeLibImpl->ref = 1;
 
     list_init(&pTypeLibImpl->implib_list);
@@ -4438,7 +4438,7 @@ static HRESULT WINAPI ITypeLib2_fnGetTypeComp(
     ITypeLibImpl *This = impl_from_ITypeLib2(iface);
 
     TRACE("(%p)->(%p)\n",This,ppTComp);
-    *ppTComp = (ITypeComp *)&This->lpVtblTypeComp;
+    *ppTComp = &This->ITypeComp_iface;
     ITypeComp_AddRef(*ppTComp);
 
     return S_OK;
-- 
1.8.2.2





More information about the wine-patches mailing list