Misha Koshelev : msi: Use SysAllocString/
SysFreeString for BSTR members of EXCEPINFO structure.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 30 08:55:41 CDT 2007
Module: wine
Branch: master
Commit: 03d19b5782e92fba2bea0f1ae5758b30be43666f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=03d19b5782e92fba2bea0f1ae5758b30be43666f
Author: Misha Koshelev <mk144210 at bcm.edu>
Date: Fri Jul 27 23:51:47 2007 -0500
msi: Use SysAllocString/SysFreeString for BSTR members of EXCEPINFO structure.
---
dlls/msi/automation.c | 4 ++--
dlls/msi/script.c | 6 ++++++
dlls/msi/tests/automation.c | 4 ++++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 97084fc..fb8d4f5 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -426,8 +426,8 @@ static HRESULT WINAPI AutomationObject_Invoke(
memset(pExcepInfo, 0, sizeof(EXCEPINFO));
pExcepInfo->wCode = 1000;
- pExcepInfo->bstrSource = szExceptionSource;
- pExcepInfo->bstrDescription = szExceptionDescription;
+ pExcepInfo->bstrSource = SysAllocString(szExceptionSource);
+ pExcepInfo->bstrDescription = SysAllocString(szExceptionDescription);
hr = DISP_E_EXCEPTION;
}
}
diff --git a/dlls/msi/script.c b/dlls/msi/script.c
index cbce0ce..2f2a17e 100644
--- a/dlls/msi/script.c
+++ b/dlls/msi/script.c
@@ -336,9 +336,15 @@ static HRESULT WINAPI MsiActiveScriptSite_OnScriptError(IActiveScriptSite* iface
TRACE("(%p/%p)->(%p)\n", This, iface, pscripterror);
+ memset(&exception, 0, sizeof(EXCEPINFO));
hr = IActiveScriptError_GetExceptionInfo(pscripterror, &exception);
if (SUCCEEDED(hr))
+ {
ERR("script error: %s\n", debugstr_w(exception.bstrDescription));
+ SysFreeString(exception.bstrSource);
+ SysFreeString(exception.bstrDescription);
+ SysFreeString(exception.bstrHelpFile);
+ }
return S_OK;
}
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index e7d1847..d2aac28 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -433,6 +433,10 @@ static WCHAR szSource[] = {'M','s','i',' ','A','P','I',' ','E','r','r','o','r',0
ok(excepinfo.bstrDescription != NULL, "Exception description was NULL\n"); \
if (excepinfo.bstrDescription) \
ok_w2("Exception description was \"%s\" but expected to be \"%s\"\n", excepinfo.bstrDescription, szDescription); \
+\
+ SysFreeString(excepinfo.bstrSource); \
+ SysFreeString(excepinfo.bstrDescription); \
+ SysFreeString(excepinfo.bstrHelpFile); \
}
static DISPID get_dispid( IDispatch *disp, const char *name )
More information about the wine-cvs
mailing list