Andrew Eikum : oleaut32: Finish COM cleanup for internal loading structures .
Module: wine Branch: master Commit: d7313b21e84028303adc9c3df1e5533383c4ec5b URL: http://source.winehq.org/git/wine.git/?a=commit;h=d7313b21e84028303adc9c3df1... Author: Andrew Eikum <aeikum(a)codeweavers.com> Date: Thu May 9 15:23:36 2013 -0500 oleaut32: Finish COM cleanup for internal loading structures. --- dlls/oleaut32/typelib.c | 27 +++++++++++++++++++++------ 1 files changed, 21 insertions(+), 6 deletions(-) diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index b20d587..3d0c88e 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -2476,6 +2476,11 @@ typedef struct TLB_PEFile LPVOID typelib_base; } TLB_PEFile; +static inline TLB_PEFile *pefile_impl_from_IUnknown(IUnknown *iface) +{ + return CONTAINING_RECORD(iface, TLB_PEFile, IUnknown_iface); +} + static HRESULT WINAPI TLB_PEFile_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { if (IsEqualIID(riid, &IID_IUnknown)) @@ -2490,13 +2495,13 @@ static HRESULT WINAPI TLB_PEFile_QueryInterface(IUnknown *iface, REFIID riid, vo static ULONG WINAPI TLB_PEFile_AddRef(IUnknown *iface) { - TLB_PEFile *This = (TLB_PEFile *)iface; + TLB_PEFile *This = pefile_impl_from_IUnknown(iface); return InterlockedIncrement(&This->refs); } static ULONG WINAPI TLB_PEFile_Release(IUnknown *iface) { - TLB_PEFile *This = (TLB_PEFile *)iface; + TLB_PEFile *This = pefile_impl_from_IUnknown(iface); ULONG refs = InterlockedDecrement(&This->refs); if (!refs) { @@ -2571,6 +2576,11 @@ typedef struct TLB_NEFile LPVOID typelib_base; } TLB_NEFile; +static inline TLB_NEFile *nefile_impl_from_IUnknown(IUnknown *iface) +{ + return CONTAINING_RECORD(iface, TLB_NEFile, IUnknown_iface); +} + static HRESULT WINAPI TLB_NEFile_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { if (IsEqualIID(riid, &IID_IUnknown)) @@ -2585,13 +2595,13 @@ static HRESULT WINAPI TLB_NEFile_QueryInterface(IUnknown *iface, REFIID riid, vo static ULONG WINAPI TLB_NEFile_AddRef(IUnknown *iface) { - TLB_NEFile *This = (TLB_NEFile *)iface; + TLB_NEFile *This = nefile_impl_from_IUnknown(iface); return InterlockedIncrement(&This->refs); } static ULONG WINAPI TLB_NEFile_Release(IUnknown *iface) { - TLB_NEFile *This = (TLB_NEFile *)iface; + TLB_NEFile *This = nefile_impl_from_IUnknown(iface); ULONG refs = InterlockedDecrement(&This->refs); if (!refs) { @@ -2788,6 +2798,11 @@ typedef struct TLB_Mapping LPVOID typelib_base; } TLB_Mapping; +static inline TLB_Mapping *mapping_impl_from_IUnknown(IUnknown *iface) +{ + return CONTAINING_RECORD(iface, TLB_Mapping, IUnknown_iface); +} + static HRESULT WINAPI TLB_Mapping_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { if (IsEqualIID(riid, &IID_IUnknown)) @@ -2802,13 +2817,13 @@ static HRESULT WINAPI TLB_Mapping_QueryInterface(IUnknown *iface, REFIID riid, v static ULONG WINAPI TLB_Mapping_AddRef(IUnknown *iface) { - TLB_Mapping *This = (TLB_Mapping *)iface; + TLB_Mapping *This = mapping_impl_from_IUnknown(iface); return InterlockedIncrement(&This->refs); } static ULONG WINAPI TLB_Mapping_Release(IUnknown *iface) { - TLB_Mapping *This = (TLB_Mapping *)iface; + TLB_Mapping *This = mapping_impl_from_IUnknown(iface); ULONG refs = InterlockedDecrement(&This->refs); if (!refs) {
participants (1)
-
Alexandre Julliard