diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-10 18:18:38 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-11 20:24:18 -0600 |
| commit | af68033509730ffe01602f839861a47287bb709f (patch) | |
| tree | 2960f6cdd023e74a4ca2bbc49d0294b7bfbed5c5 /src/engine/plan.cpp | |
| parent | 10ef9d5bfbf81f454113a1c2716009831a916222 (diff) | |
| download | wix-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.cpp | 11 |
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 | { |
