From 5392014e29d0d93184b58dbd25ddda08a10271ad Mon Sep 17 00:00:00 2001 From: Hib Eris Date: Sun, 21 Jun 2009 19:48:21 +0200 Subject: [PATCH] msi: Release more msi_custom_action_info when no longer needed. --- dlls/msi/custom.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index 66751cacc46..3476f0d376b 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -851,6 +851,7 @@ static UINT HANDLE_CustomType23(MSIPACKAGE *package, LPCWSTR source, msi_custom_action_info *info; WCHAR package_path[MAX_PATH]; DWORD size; + UINT r; static const WCHAR backslash[] = {'\\',0}; @@ -863,7 +864,9 @@ static UINT HANDLE_CustomType23(MSIPACKAGE *package, LPCWSTR source, info = do_msidbCAConcurrentInstall(package, type, package_path, target, action); - return wait_thread_handle(info); + r = wait_thread_handle(info); + release_custom_action_data( info ); + return r; } static UINT HANDLE_CustomType1(MSIPACKAGE *package, LPCWSTR source, @@ -953,6 +956,7 @@ static UINT HANDLE_CustomType17(MSIPACKAGE *package, LPCWSTR source, { msi_custom_action_info *info; MSIFILE *file; + UINT r; TRACE("%s %s\n", debugstr_w(source), debugstr_w(target)); @@ -965,7 +969,9 @@ static UINT HANDLE_CustomType17(MSIPACKAGE *package, LPCWSTR source, info = do_msidbCustomActionTypeDll( package, type, file->TargetPath, target, action ); - return wait_thread_handle( info ); + r = wait_thread_handle( info ); + release_custom_action_data( info ); + return r; } static UINT HANDLE_CustomType18(MSIPACKAGE *package, LPCWSTR source, @@ -1345,6 +1351,7 @@ static UINT HANDLE_CustomType21_22(MSIPACKAGE *package, LPCWSTR source, info = do_msidbCustomActionTypeScript( package, type, bufferw, target, action ); r = wait_thread_handle( info ); + release_custom_action_data( info ); done: msi_free(bufferw); @@ -1357,6 +1364,7 @@ static UINT HANDLE_CustomType53_54(MSIPACKAGE *package, LPCWSTR source, { msi_custom_action_info *info; WCHAR *prop; + UINT r; TRACE("%s %s\n", debugstr_w(source), debugstr_w(target)); @@ -1366,7 +1374,9 @@ static UINT HANDLE_CustomType53_54(MSIPACKAGE *package, LPCWSTR source, info = do_msidbCustomActionTypeScript( package, type, prop, NULL, action ); msi_free(prop); - return wait_thread_handle( info ); + r = wait_thread_handle( info ); + release_custom_action_data( info ); + return r; } void ACTION_FinishCustomActions(const MSIPACKAGE* package)