[4/5] msi: Calculate file install states after evaluating component conditions, not before.

Hans Leidekker hans at codeweavers.com
Thu Nov 11 03:45:20 CST 2010


---
 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 );
-- 
1.7.1







More information about the wine-patches mailing list