Hans Leidekker : msi: Calculate file install states after evaluating component conditions, not before.

Alexandre Julliard julliard at winehq.org
Thu Nov 11 12:05:48 CST 2010


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Nov 11 10:45:20 2010 +0100

msi: Calculate file install states after evaluating component conditions, not before.

---

 dlls/msi/action.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 06bbc45..e8ad30b 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -2162,8 +2162,7 @@ static UINT set_file_install_states( MSIPACKAGE *package )
         DWORD file_size;
         LPWSTR p;
 
-        if (!comp)
-            continue;
+        if (!comp->Enabled) continue;
 
         if (file->IsCompressed)
             comp->ForceLocalState = TRUE;
@@ -2264,9 +2263,6 @@ static UINT ACTION_CostFinalize(MSIPACKAGE *package)
     ACTION_GetComponentInstallStates(package);
     ACTION_GetFeatureInstallStates(package);
 
-    TRACE("Calculating file install states\n");
-    set_file_install_states( package );
-
     if (!process_overrides( package, msi_get_property_int( package->db, szlevel, 1 ) ))
     {
         TRACE("Evaluating feature conditions\n");
@@ -2291,6 +2287,9 @@ static UINT ACTION_CostFinalize(MSIPACKAGE *package)
             comp->Enabled = TRUE;
     }
 
+    TRACE("Calculating file install states\n");
+    set_file_install_states( package );
+
     msi_set_property( package->db, szCosting, szOne );
     /* set default run level if not set */
     level = msi_dup_property( package->db, szlevel );




More information about the wine-cvs mailing list