Hans Leidekker : msi: Fix the assembly actions to revert components to the installed state during rollback .

Alexandre Julliard julliard at winehq.org
Wed May 25 11:28:16 CDT 2011


Module: wine
Branch: master
Commit: 39b7ce6b823a163be2fbd5c3044ff31cd669ffa7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=39b7ce6b823a163be2fbd5c3044ff31cd669ffa7

Author: Hans Leidekker <hans at 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;




More information about the wine-cvs mailing list