diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-05-06 16:48:39 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-05-11 19:11:19 -0500 |
commit | 67dd3ced3b383eb8423156cdabd3f9ce037caba8 (patch) | |
tree | 7c57221c3827bcde61b2b2c66ed2a2b1638a9a12 /src | |
parent | 8b8029f15e6e3de2fcf855037fe75dbb765475dc (diff) | |
download | wix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.tar.gz wix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.tar.bz2 wix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.zip |
Don't cache pass through bundles.
Diffstat (limited to 'src')
-rw-r--r-- | src/burn/engine/plan.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp index 9a4aa5f1..327078b9 100644 --- a/src/burn/engine/plan.cpp +++ b/src/burn/engine/plan.cpp | |||
@@ -33,7 +33,6 @@ static void ResetPlannedRollbackBoundaryState( | |||
33 | static HRESULT PlanPackagesHelper( | 33 | static HRESULT PlanPackagesHelper( |
34 | __in BURN_PACKAGE* rgPackages, | 34 | __in BURN_PACKAGE* rgPackages, |
35 | __in DWORD cPackages, | 35 | __in DWORD cPackages, |
36 | __in BOOL fPlanCleanPackages, | ||
37 | __in BURN_USER_EXPERIENCE* pUX, | 36 | __in BURN_USER_EXPERIENCE* pUX, |
38 | __in BURN_PLAN* pPlan, | 37 | __in BURN_PLAN* pPlan, |
39 | __in BURN_LOGGING* pLog, | 38 | __in BURN_LOGGING* pLog, |
@@ -513,7 +512,7 @@ extern "C" HRESULT PlanPackages( | |||
513 | { | 512 | { |
514 | HRESULT hr = S_OK; | 513 | HRESULT hr = S_OK; |
515 | 514 | ||
516 | hr = PlanPackagesHelper(pPackages->rgPackages, pPackages->cPackages, TRUE, pUX, pPlan, pLog, pVariables, display, relationType); | 515 | hr = PlanPackagesHelper(pPackages->rgPackages, pPackages->cPackages, pUX, pPlan, pLog, pVariables, display, relationType); |
517 | 516 | ||
518 | return hr; | 517 | return hr; |
519 | } | 518 | } |
@@ -725,9 +724,7 @@ extern "C" HRESULT PlanPassThroughBundle( | |||
725 | HRESULT hr = S_OK; | 724 | HRESULT hr = S_OK; |
726 | 725 | ||
727 | // Plan passthrough package. | 726 | // Plan passthrough package. |
728 | // Passthrough packages are never cleaned up by the calling bundle (they delete themselves when appropriate) | 727 | hr = PlanPackagesHelper(pPackage, 1, pUX, pPlan, pLog, pVariables, display, relationType); |
729 | // so we don't need to plan clean up. | ||
730 | hr = PlanPackagesHelper(pPackage, 1, FALSE, pUX, pPlan, pLog, pVariables, display, relationType); | ||
731 | ExitOnFailure(hr, "Failed to process passthrough package."); | 728 | ExitOnFailure(hr, "Failed to process passthrough package."); |
732 | 729 | ||
733 | LExit: | 730 | LExit: |
@@ -747,7 +744,7 @@ extern "C" HRESULT PlanUpdateBundle( | |||
747 | HRESULT hr = S_OK; | 744 | HRESULT hr = S_OK; |
748 | 745 | ||
749 | // Plan update package. | 746 | // Plan update package. |
750 | hr = PlanPackagesHelper(pPackage, 1, TRUE, pUX, pPlan, pLog, pVariables, display, relationType); | 747 | hr = PlanPackagesHelper(pPackage, 1, pUX, pPlan, pLog, pVariables, display, relationType); |
751 | ExitOnFailure(hr, "Failed to process update package."); | 748 | ExitOnFailure(hr, "Failed to process update package."); |
752 | 749 | ||
753 | LExit: | 750 | LExit: |
@@ -757,7 +754,6 @@ LExit: | |||
757 | static HRESULT PlanPackagesHelper( | 754 | static HRESULT PlanPackagesHelper( |
758 | __in BURN_PACKAGE* rgPackages, | 755 | __in BURN_PACKAGE* rgPackages, |
759 | __in DWORD cPackages, | 756 | __in DWORD cPackages, |
760 | __in BOOL fPlanCleanPackages, | ||
761 | __in BURN_USER_EXPERIENCE* pUX, | 757 | __in BURN_USER_EXPERIENCE* pUX, |
762 | __in BURN_PLAN* pPlan, | 758 | __in BURN_PLAN* pPlan, |
763 | __in BURN_LOGGING* pLog, | 759 | __in BURN_LOGGING* pLog, |
@@ -813,7 +809,8 @@ static HRESULT PlanPackagesHelper( | |||
813 | pRollbackBoundary = NULL; | 809 | pRollbackBoundary = NULL; |
814 | } | 810 | } |
815 | 811 | ||
816 | if (fPlanCleanPackages) | 812 | // Passthrough packages are never cleaned up by the calling bundle (they delete themselves when appropriate). |
813 | if (!pPlan->fEnabledForwardCompatibleBundle) | ||
817 | { | 814 | { |
818 | // Plan clean up of packages. | 815 | // Plan clean up of packages. |
819 | for (DWORD i = 0; i < cPackages; ++i) | 816 | for (DWORD i = 0; i < cPackages; ++i) |
@@ -1051,6 +1048,8 @@ extern "C" HRESULT PlanLayoutPackage( | |||
1051 | HRESULT hr = S_OK; | 1048 | HRESULT hr = S_OK; |
1052 | BURN_CACHE_ACTION* pCacheAction = NULL; | 1049 | BURN_CACHE_ACTION* pCacheAction = NULL; |
1053 | 1050 | ||
1051 | AssertSz(!pPlan->fEnabledForwardCompatibleBundle, "Passthrough packages must already be cached"); | ||
1052 | |||
1054 | hr = ProcessPayloadGroup(pPlan, &pPackage->payloads); | 1053 | hr = ProcessPayloadGroup(pPlan, &pPackage->payloads); |
1055 | ExitOnFailure(hr, "Failed to process payload group for package: %ls.", pPackage->sczId); | 1054 | ExitOnFailure(hr, "Failed to process payload group for package: %ls.", pPackage->sczId); |
1056 | 1055 | ||
@@ -2079,6 +2078,11 @@ static HRESULT AddCachePackageHelper( | |||
2079 | BURN_CACHE_ACTION* pCacheAction = NULL; | 2078 | BURN_CACHE_ACTION* pCacheAction = NULL; |
2080 | DWORD dwCheckpoint = 0; | 2079 | DWORD dwCheckpoint = 0; |
2081 | 2080 | ||
2081 | if (pPlan->fEnabledForwardCompatibleBundle) // Passthrough packages must already be cached. | ||
2082 | { | ||
2083 | ExitFunction(); | ||
2084 | } | ||
2085 | |||
2082 | BOOL fPlanned = AlreadyPlannedCachePackage(pPlan, pPackage->sczId, phSyncpointEvent); | 2086 | BOOL fPlanned = AlreadyPlannedCachePackage(pPlan, pPackage->sczId, phSyncpointEvent); |
2083 | if (fPlanned) | 2087 | if (fPlanned) |
2084 | { | 2088 | { |