ChangeSet ID: 20997 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/10/31 09:43:53
Modified files: dlls/oleaut32 : usrmarshal.c
Log message: Huw Davies huw@codeweavers.com Deal with pExcepInfo == NULL.
Patch: http://cvs.winehq.org/patch.py?id=20997
Old revision New revision Changes Path 1.11 1.12 +9 -0 wine/dlls/oleaut32/usrmarshal.c
Index: wine/dlls/oleaut32/usrmarshal.c diff -u -p wine/dlls/oleaut32/usrmarshal.c:1.11 wine/dlls/oleaut32/usrmarshal.c:1.12 --- wine/dlls/oleaut32/usrmarshal.c 31 Oct 2005 15:43:53 -0000 +++ /dev/null 31 Oct 2005 15:43:53 -0000 @@ -537,6 +537,7 @@ HRESULT CALLBACK IDispatch_Invoke_Proxy( VARIANTARG* rgVarRef = NULL; UINT u, cVarRef; UINT uArgErr; + EXCEPINFO ExcepInfo;
TRACE("(%p)->(%ld,%s,%lx,%x,%p,%p,%p,%p)\n", This, dispIdMember, debugstr_guid(riid), @@ -546,6 +547,7 @@ HRESULT CALLBACK IDispatch_Invoke_Proxy( /* [out] args can't be null, use dummy vars if needed */ if (!pVarResult) pVarResult = &VarResult; if (!puArgErr) puArgErr = &uArgErr; + if (!pExcepInfo) pExcepInfo = &ExcepInfo;
/* count by-ref args */ for (cVarRef=0,u=0; u<pDispParams->cArgs; u++) { @@ -596,6 +598,13 @@ HRESULT CALLBACK IDispatch_Invoke_Proxy( CoTaskMemFree(rgVarRef); CoTaskMemFree(rgVarRefIdx); } + + if(pExcepInfo == &ExcepInfo) + { + SysFreeString(pExcepInfo->bstrSource); + SysFreeString(pExcepInfo->bstrDescription); + SysFreeString(pExcepInfo->bstrHelpFile); + } return hr; }