Module: wine Branch: master Commit: 6682d86e156fb9b222c781ab92031890b2cb50d8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6682d86e156fb9b222c781ab92...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Nov 11 20:10:33 2010 +0100
oleaut32: Get rid of the ICOM_THIS_MULTI macro.
---
dlls/oleaut32/tmarshal.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c index bfe17c8..9f0145d 100644 --- a/dlls/oleaut32/tmarshal.c +++ b/dlls/oleaut32/tmarshal.c @@ -54,8 +54,6 @@ static const WCHAR IDispatchW[] = { 'I','D','i','s','p','a','t','c','h',0}; WINE_DEFAULT_DEBUG_CHANNEL(ole); WINE_DECLARE_DEBUG_CHANNEL(olerelay);
-#define ICOM_THIS_MULTI(impl,field,iface) impl* const This=(impl*)((char*)(iface) - offsetof(impl,field)) - static HRESULT TMarshalDispatchChannel_Create( IRpcChannelBuffer *pDelegateChannel, REFIID tmarshal_riid, IRpcChannelBuffer **ppChannel); @@ -405,6 +403,11 @@ typedef struct _TMProxyImpl { IRpcProxyBuffer *dispatch_proxy; } TMProxyImpl;
+static inline TMProxyImpl *impl_from_IRpcProxyBuffer( IRpcProxyBuffer *iface ) +{ + return (TMProxyImpl *)((char*)iface - FIELD_OFFSET(TMProxyImpl, lpvtbl2)); +} + static HRESULT WINAPI TMProxyImpl_QueryInterface(LPRPCPROXYBUFFER iface, REFIID riid, LPVOID *ppv) { @@ -421,7 +424,7 @@ TMProxyImpl_QueryInterface(LPRPCPROXYBUFFER iface, REFIID riid, LPVOID *ppv) static ULONG WINAPI TMProxyImpl_AddRef(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl,lpvtbl2,iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); ULONG refCount = InterlockedIncrement(&This->ref);
TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); @@ -432,7 +435,7 @@ TMProxyImpl_AddRef(LPRPCPROXYBUFFER iface) static ULONG WINAPI TMProxyImpl_Release(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl,lpvtbl2,iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface ); ULONG refCount = InterlockedDecrement(&This->ref);
TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); @@ -455,7 +458,7 @@ static HRESULT WINAPI TMProxyImpl_Connect( LPRPCPROXYBUFFER iface,IRpcChannelBuffer* pRpcChannelBuffer) { - ICOM_THIS_MULTI(TMProxyImpl, lpvtbl2, iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface );
TRACE("(%p)\n", pRpcChannelBuffer);
@@ -483,7 +486,7 @@ TMProxyImpl_Connect( static void WINAPI TMProxyImpl_Disconnect(LPRPCPROXYBUFFER iface) { - ICOM_THIS_MULTI(TMProxyImpl, lpvtbl2, iface); + TMProxyImpl *This = impl_from_IRpcProxyBuffer( iface );
TRACE("()\n");