Misha Koshelev : msi: automation:
Move VariantClears out of specific case statements when possible.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 8 13:16:59 CDT 2007
Module: wine
Branch: master
Commit: 3909a499e055f3d8baab921ffb53e2af7c005038
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3909a499e055f3d8baab921ffb53e2af7c005038
Author: Misha Koshelev <mk144210 at bcm.edu>
Date: Tue May 8 07:39:38 2007 -0500
msi: automation: Move VariantClears out of specific case statements when possible.
---
dlls/msi/automation.c | 50 ++++++++++++++++++++++++++++--------------------
1 files changed, 29 insertions(+), 21 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 6325e4c..c732163 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -560,10 +560,9 @@ static HRESULT WINAPI RecordImpl_Invoke(
if (FAILED(hr)) return hr;
hr = DispGetParam(pDispParams, DISPID_PROPERTYPUT, VT_BSTR, &varg1, puArgErr);
if (FAILED(hr)) return hr;
- ret = MsiRecordSetStringW(This->msiHandle, V_I4(&varg0), V_BSTR(&varg1));
- VariantClear(&varg1);
- if (ret != ERROR_SUCCESS)
+ if ((ret = MsiRecordSetStringW(This->msiHandle, V_I4(&varg0), V_BSTR(&varg1))) != ERROR_SUCCESS)
{
+ VariantClear(&varg1);
ERR("MsiRecordSetString returned %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -574,6 +573,9 @@ static HRESULT WINAPI RecordImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg1);
+ VariantClear(&varg0);
+
return S_OK;
}
@@ -618,6 +620,8 @@ static HRESULT WINAPI StringListImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg0);
+
return S_OK;
}
@@ -699,6 +703,9 @@ static HRESULT WINAPI ViewImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg1);
+ VariantClear(&varg0);
+
return S_OK;
}
@@ -730,9 +737,7 @@ static HRESULT WINAPI DatabaseImpl_Invoke(
hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
if (FAILED(hr)) return hr;
V_VT(pVarResult) = VT_DISPATCH;
- ret = MsiDatabaseOpenViewW(This->msiHandle, V_BSTR(&varg0), &msiHandle);
- VariantClear(&varg0);
- if (ret == ERROR_SUCCESS)
+ if ((ret = MsiDatabaseOpenViewW(This->msiHandle, V_BSTR(&varg0), &msiHandle)) == ERROR_SUCCESS)
{
if (SUCCEEDED(hr = create_automation_object(msiHandle, NULL, (LPVOID*)&pDispatch, &DIID_View, ViewImpl_Invoke, NULL, 0)))
{
@@ -744,6 +749,7 @@ static HRESULT WINAPI DatabaseImpl_Invoke(
}
else
{
+ VariantClear(&varg0);
ERR("MsiDatabaseOpenView returned %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -754,6 +760,9 @@ static HRESULT WINAPI DatabaseImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg1);
+ VariantClear(&varg0);
+
return S_OK;
}
@@ -811,7 +820,6 @@ static HRESULT WINAPI SessionImpl_Invoke(
}
if (ret != ERROR_SUCCESS)
ERR("MsiGetProperty returned %d\n", ret);
- VariantClear(&varg0);
} else if (wFlags & DISPATCH_PROPERTYPUT) {
hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
if (FAILED(hr)) return hr;
@@ -820,11 +828,10 @@ static HRESULT WINAPI SessionImpl_Invoke(
VariantClear(&varg0);
return hr;
}
- ret = MsiSetPropertyW(This->msiHandle, V_BSTR(&varg0), V_BSTR(&varg1));
- VariantClear(&varg0);
- VariantClear(&varg1);
- if (ret != ERROR_SUCCESS)
+ if ((ret = MsiSetPropertyW(This->msiHandle, V_BSTR(&varg0), V_BSTR(&varg1))) != ERROR_SUCCESS)
{
+ VariantClear(&varg0);
+ VariantClear(&varg1);
ERR("MsiSetProperty returned %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -884,7 +891,6 @@ static HRESULT WINAPI SessionImpl_Invoke(
hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
if (FAILED(hr)) return hr;
ret = MsiDoActionW(This->msiHandle, V_BSTR(&varg0));
- VariantClear(&varg0);
V_VT(pVarResult) = VT_I4;
switch (ret)
{
@@ -913,6 +919,7 @@ static HRESULT WINAPI SessionImpl_Invoke(
V_I4(pVarResult) = msiDoActionStatusBadActionData;
break;
default:
+ VariantClear(&varg0);
FIXME("MsiDoAction returned unhandled value %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -941,7 +948,6 @@ static HRESULT WINAPI SessionImpl_Invoke(
ERR("MsiGetFeatureState returned %d\n", ret);
V_I4(pVarResult) = msiInstallStateUnknown;
}
- VariantClear(&varg0);
}
break;
@@ -957,7 +963,6 @@ static HRESULT WINAPI SessionImpl_Invoke(
ERR("MsiGetFeatureState returned %d\n", ret);
V_I4(pVarResult) = msiInstallStateUnknown;
}
- VariantClear(&varg0);
} else if (wFlags & DISPATCH_PROPERTYPUT) {
hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
if (FAILED(hr)) return hr;
@@ -966,10 +971,9 @@ static HRESULT WINAPI SessionImpl_Invoke(
VariantClear(&varg0);
return hr;
}
- ret = MsiSetFeatureStateW(This->msiHandle, V_BSTR(&varg0), V_I4(&varg1));
- VariantClear(&varg0);
- if (ret != ERROR_SUCCESS)
+ if ((ret = MsiSetFeatureStateW(This->msiHandle, V_BSTR(&varg0), V_I4(&varg1))) != ERROR_SUCCESS)
{
+ VariantClear(&varg0);
ERR("MsiSetFeatureState returned %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -980,6 +984,9 @@ static HRESULT WINAPI SessionImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg1);
+ VariantClear(&varg0);
+
return S_OK;
}
@@ -1017,9 +1024,7 @@ static HRESULT WINAPI InstallerImpl_Invoke(
return hr;
}
V_VT(pVarResult) = VT_DISPATCH;
- ret = MsiOpenPackageExW(V_BSTR(&varg0), V_I4(&varg1), &msiHandle);
- VariantClear(&varg0);
- if (ret == ERROR_SUCCESS)
+ if ((ret = MsiOpenPackageExW(V_BSTR(&varg0), V_I4(&varg1), &msiHandle)) == ERROR_SUCCESS)
{
if (SUCCEEDED(create_session(msiHandle, (IDispatch *)This, &pDispatch)))
{
@@ -1029,6 +1034,7 @@ static HRESULT WINAPI InstallerImpl_Invoke(
}
else
{
+ VariantClear(&varg0);
ERR("MsiOpenPackageEx returned %d\n", ret);
return DISP_E_EXCEPTION;
}
@@ -1041,7 +1047,6 @@ static HRESULT WINAPI InstallerImpl_Invoke(
if (FAILED(hr)) return hr;
V_VT(pVarResult) = VT_I4;
V_I4(pVarResult) = MsiQueryProductStateW(V_BSTR(&varg0));
- VariantClear(&varg0);
}
break;
@@ -1089,6 +1094,9 @@ static HRESULT WINAPI InstallerImpl_Invoke(
return DISP_E_MEMBERNOTFOUND;
}
+ VariantClear(&varg1);
+ VariantClear(&varg0);
+
return S_OK;
}
More information about the wine-cvs
mailing list