wine/dlls/oleaut32 usrmarshal.c
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Oct 31 09:43:53 CST 2005
ChangeSet ID: 20997
CVSROOT: /opt/cvs-commit
Module name: wine
Changes by: julliard at winehq.org 2005/10/31 09:43:53
Modified files:
dlls/oleaut32 : usrmarshal.c
Log message:
Huw Davies <huw at 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;
}
More information about the wine-cvs
mailing list