Hans Leidekker : msi: Fix the assembly actions to revert components to the installed state during rollback .
Module: wine Branch: master Commit: 39b7ce6b823a163be2fbd5c3044ff31cd669ffa7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=39b7ce6b823a163be2fbd5c304... Author: Hans Leidekker <hans(a)codeweavers.com> Date: Wed May 25 10:39:11 2011 +0200 msi: Fix the assembly actions to revert components to the installed state during rollback. --- dlls/msi/assembly.c | 28 ++++++---------------------- 1 files changed, 6 insertions(+), 22 deletions(-) diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c index 2beb005..806f89e 100644 --- a/dlls/msi/assembly.c +++ b/dlls/msi/assembly.c @@ -559,20 +559,12 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package ) if (!assembly || !comp->ComponentId) continue; - if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_LOCAL) { - TRACE("component is disabled: %s\n", debugstr_w(comp->Component)); + TRACE("component not scheduled for installation %s\n", debugstr_w(comp->Component)); continue; } - - if (comp->ActionRequest != INSTALLSTATE_LOCAL) - { - TRACE("Component not scheduled for installation: %s\n", debugstr_w(comp->Component)); - comp->Action = comp->Installed; - continue; - } - comp->Action = INSTALLSTATE_LOCAL; - TRACE("publishing %s\n", debugstr_w(comp->Component)); CLSIDFromString( package->ProductCode, &guid ); @@ -628,20 +620,12 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package ) if (!assembly || !comp->ComponentId) continue; - if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_ABSENT) { - TRACE("component is disabled: %s\n", debugstr_w(comp->Component)); + TRACE("component not scheduled for removal %s\n", debugstr_w(comp->Component)); continue; } - - if (comp->ActionRequest != INSTALLSTATE_ABSENT) - { - TRACE("Component not scheduled for removal: %s\n", debugstr_w(comp->Component)); - comp->Action = comp->Installed; - continue; - } - comp->Action = INSTALLSTATE_ABSENT; - TRACE("unpublishing %s\n", debugstr_w(comp->Component)); win32 = assembly->attributes & msidbAssemblyAttributesWin32;
participants (1)
-
Alexandre Julliard