aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-05-06 16:48:39 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-05-11 19:11:19 -0500
commit67dd3ced3b383eb8423156cdabd3f9ce037caba8 (patch)
tree7c57221c3827bcde61b2b2c66ed2a2b1638a9a12
parent8b8029f15e6e3de2fcf855037fe75dbb765475dc (diff)
downloadwix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.tar.gz
wix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.tar.bz2
wix-67dd3ced3b383eb8423156cdabd3f9ce037caba8.zip
Don't cache pass through bundles.
-rw-r--r--src/burn/engine/plan.cpp20
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(
33static HRESULT PlanPackagesHelper( 33static 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
733LExit: 730LExit:
@@ -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
753LExit: 750LExit:
@@ -757,7 +754,6 @@ LExit:
757static HRESULT PlanPackagesHelper( 754static 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 {