Module: wine Branch: master Commit: b194b778b4a1dcab9ecda053ebe35fa7b153dfb5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b194b778b4a1dcab9ecda053eb...
Author: Michael Stefaniuc mstefani@redhat.de Date: Sat Dec 4 22:13:29 2010 +0100
fusion: Use an iface instead of a vtbl pointer in IAssemblyEnumImpl.
---
dlls/fusion/asmenum.c | 21 +++++++++++++-------- 1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/dlls/fusion/asmenum.c b/dlls/fusion/asmenum.c index d4ea905..99462ed 100644 --- a/dlls/fusion/asmenum.c +++ b/dlls/fusion/asmenum.c @@ -45,17 +45,22 @@ typedef struct _tagASMNAME
typedef struct { - const IAssemblyEnumVtbl *lpIAssemblyEnumVtbl; + IAssemblyEnum IAssemblyEnum_iface;
struct list assemblies; struct list *iter; LONG ref; } IAssemblyEnumImpl;
+static inline IAssemblyEnumImpl *impl_from_IAssemblyEnum(IAssemblyEnum *iface) +{ + return CONTAINING_RECORD(iface, IAssemblyEnumImpl, IAssemblyEnum_iface); +} + static HRESULT WINAPI IAssemblyEnumImpl_QueryInterface(IAssemblyEnum *iface, REFIID riid, LPVOID *ppobj) { - IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + IAssemblyEnumImpl *This = impl_from_IAssemblyEnum(iface);
TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppobj);
@@ -75,7 +80,7 @@ static HRESULT WINAPI IAssemblyEnumImpl_QueryInterface(IAssemblyEnum *iface,
static ULONG WINAPI IAssemblyEnumImpl_AddRef(IAssemblyEnum *iface) { - IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + IAssemblyEnumImpl *This = impl_from_IAssemblyEnum(iface); ULONG refCount = InterlockedIncrement(&This->ref);
TRACE("(%p)->(ref before = %u)\n", This, refCount - 1); @@ -85,7 +90,7 @@ static ULONG WINAPI IAssemblyEnumImpl_AddRef(IAssemblyEnum *iface)
static ULONG WINAPI IAssemblyEnumImpl_Release(IAssemblyEnum *iface) { - IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + IAssemblyEnumImpl *This = impl_from_IAssemblyEnum(iface); ULONG refCount = InterlockedDecrement(&This->ref); struct list *item, *cursor;
@@ -113,7 +118,7 @@ static HRESULT WINAPI IAssemblyEnumImpl_GetNextAssembly(IAssemblyEnum *iface, IAssemblyName **ppName, DWORD dwFlags) { - IAssemblyEnumImpl *asmenum = (IAssemblyEnumImpl *)iface; + IAssemblyEnumImpl *asmenum = impl_from_IAssemblyEnum(iface); ASMNAME *asmname;
TRACE("(%p, %p, %p, %d)\n", iface, pvReserved, ppName, dwFlags); @@ -135,7 +140,7 @@ static HRESULT WINAPI IAssemblyEnumImpl_GetNextAssembly(IAssemblyEnum *iface,
static HRESULT WINAPI IAssemblyEnumImpl_Reset(IAssemblyEnum *iface) { - IAssemblyEnumImpl *asmenum = (IAssemblyEnumImpl *)iface; + IAssemblyEnumImpl *asmenum = impl_from_IAssemblyEnum(iface);
TRACE("(%p)\n", iface);
@@ -431,7 +436,7 @@ HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum **pEnum, IUnknown *pUnkReserved, if (!asmenum) return E_OUTOFMEMORY;
- asmenum->lpIAssemblyEnumVtbl = &AssemblyEnumVtbl; + asmenum->IAssemblyEnum_iface.lpVtbl = &AssemblyEnumVtbl; asmenum->ref = 1; list_init(&asmenum->assemblies);
@@ -446,7 +451,7 @@ HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum **pEnum, IUnknown *pUnkReserved, }
asmenum->iter = list_head(&asmenum->assemblies); - *pEnum = (IAssemblyEnum *)asmenum; + *pEnum = &asmenum->IAssemblyEnum_iface;
return S_OK; }