Module: wine Branch: master Commit: 3faddc21b3beb429a5d82848868c1585a9500f37 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3faddc21b3beb429a5d8284886...
Author: Hans Leidekker hans@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 );