aboutsummaryrefslogtreecommitdiff
path: root/src/engine/mspengine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-11-15 21:38:57 -0600
committerSean Hall <r.sean.hall@gmail.com>2020-11-17 19:06:00 -0600
commite71de85e4ec2899ecd01ac236603cf1dddc4a6c7 (patch)
treeb1537ce17314dc073a9fd3d7d4925f215990be13 /src/engine/mspengine.cpp
parent846f5a033d346c1bac51c56d4936cd3118ebea7a (diff)
downloadwix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.tar.gz
wix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.tar.bz2
wix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.zip
Use plan to decide when to begin, commit, or rollback MSI transactions
Diffstat (limited to 'src/engine/mspengine.cpp')
-rw-r--r--src/engine/mspengine.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/engine/mspengine.cpp b/src/engine/mspengine.cpp
index 0854862b..e14173d1 100644
--- a/src/engine/mspengine.cpp
+++ b/src/engine/mspengine.cpp
@@ -266,6 +266,7 @@ LExit:
266extern "C" HRESULT MspEnginePlanCalculatePackage( 266extern "C" HRESULT MspEnginePlanCalculatePackage(
267 __in BURN_PACKAGE* pPackage, 267 __in BURN_PACKAGE* pPackage,
268 __in BURN_USER_EXPERIENCE* pUserExperience, 268 __in BURN_USER_EXPERIENCE* pUserExperience,
269 __in BOOL fInsideMsiTransaction,
269 __out BOOL* pfBARequestedCache 270 __out BOOL* pfBARequestedCache
270 ) 271 )
271{ 272{
@@ -329,7 +330,7 @@ extern "C" HRESULT MspEnginePlanCalculatePackage(
329 } 330 }
330 331
331 // Calculate the rollback action if there is an execute action. 332 // Calculate the rollback action if there is an execute action.
332 if (BOOTSTRAPPER_ACTION_STATE_NONE != execute) 333 if (BOOTSTRAPPER_ACTION_STATE_NONE != execute && !fInsideMsiTransaction)
333 { 334 {
334 switch (BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN != pPackage->expected ? pPackage->expected : pPackage->currentState) 335 switch (BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN != pPackage->expected ? pPackage->expected : pPackage->currentState)
335 { 336 {
@@ -442,7 +443,7 @@ extern "C" HRESULT MspEnginePlanAddPackage(
442 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->rollback) 443 if (BOOTSTRAPPER_ACTION_STATE_NONE != pTargetProduct->rollback)
443 { 444 {
444 hr = PlanTargetProduct(display, pUserExperience, TRUE, pPlan, pLog, pVariables, pTargetProduct->rollback, pPackage, pTargetProduct, hCacheEvent); 445 hr = PlanTargetProduct(display, pUserExperience, TRUE, pPlan, pLog, pVariables, pTargetProduct->rollback, pPackage, pTargetProduct, hCacheEvent);
445 ExitOnFailure(hr, "Failed to plan rollack target product."); 446 ExitOnFailure(hr, "Failed to plan rollback target product.");
446 } 447 }
447 } 448 }
448 449