aboutsummaryrefslogtreecommitdiff
path: root/src/engine/plan.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-03-10 18:18:38 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-03-11 20:24:18 -0600
commitaf68033509730ffe01602f839861a47287bb709f (patch)
tree2960f6cdd023e74a4ca2bbc49d0294b7bfbed5c5 /src/engine/plan.cpp
parent10ef9d5bfbf81f454113a1c2716009831a916222 (diff)
downloadwix-af68033509730ffe01602f839861a47287bb709f.tar.gz
wix-af68033509730ffe01602f839861a47287bb709f.tar.bz2
wix-af68033509730ffe01602f839861a47287bb709f.zip
Handle when related bundles have an uninstall key but aren't cached.
#4991
Diffstat (limited to 'src/engine/plan.cpp')
-rw-r--r--src/engine/plan.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/engine/plan.cpp b/src/engine/plan.cpp
index 87607382..a4b8d0c1 100644
--- a/src/engine/plan.cpp
+++ b/src/engine/plan.cpp
@@ -1292,6 +1292,12 @@ extern "C" HRESULT PlanRelatedBundlesBegin(
1292 for (DWORD i = 0; i < pRegistration->relatedBundles.cRelatedBundles; ++i) 1292 for (DWORD i = 0; i < pRegistration->relatedBundles.cRelatedBundles; ++i)
1293 { 1293 {
1294 BURN_RELATED_BUNDLE* pRelatedBundle = pRegistration->relatedBundles.rgRelatedBundles + i; 1294 BURN_RELATED_BUNDLE* pRelatedBundle = pRegistration->relatedBundles.rgRelatedBundles + i;
1295
1296 if (!pRelatedBundle->fPlannable)
1297 {
1298 continue;
1299 }
1300
1295 pRelatedBundle->package.defaultRequested = BOOTSTRAPPER_REQUEST_STATE_NONE; 1301 pRelatedBundle->package.defaultRequested = BOOTSTRAPPER_REQUEST_STATE_NONE;
1296 pRelatedBundle->package.requested = BOOTSTRAPPER_REQUEST_STATE_NONE; 1302 pRelatedBundle->package.requested = BOOTSTRAPPER_REQUEST_STATE_NONE;
1297 1303
@@ -1417,6 +1423,11 @@ extern "C" HRESULT PlanRelatedBundlesComplete(
1417 DWORD *pdwInsertIndex = NULL; 1423 DWORD *pdwInsertIndex = NULL;
1418 BURN_RELATED_BUNDLE* pRelatedBundle = pRegistration->relatedBundles.rgRelatedBundles + i; 1424 BURN_RELATED_BUNDLE* pRelatedBundle = pRegistration->relatedBundles.rgRelatedBundles + i;
1419 1425
1426 if (!pRelatedBundle->fPlannable)
1427 {
1428 continue;
1429 }
1430
1420 // Do not execute if a major upgrade to the related bundle is an embedded bundle (Provider keys are the same) 1431 // Do not execute if a major upgrade to the related bundle is an embedded bundle (Provider keys are the same)
1421 if (0 < pRelatedBundle->package.cDependencyProviders) 1432 if (0 < pRelatedBundle->package.cDependencyProviders)
1422 { 1433 {