summaryrefslogtreecommitdiff
path: root/src/burn/engine/apply.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/apply.cpp')
-rw-r--r--src/burn/engine/apply.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp
index e67208b4..8fbaa76e 100644
--- a/src/burn/engine/apply.cpp
+++ b/src/burn/engine/apply.cpp
@@ -2547,6 +2547,11 @@ static HRESULT DoExecuteAction(
2547 } while (fRetry && *pRestart < BOOTSTRAPPER_APPLY_RESTART_INITIATED); 2547 } while (fRetry && *pRestart < BOOTSTRAPPER_APPLY_RESTART_INITIATED);
2548 2548
2549LExit: 2549LExit:
2550 if (*pRestart < restart)
2551 {
2552 *pRestart = restart;
2553 }
2554
2550 return hr; 2555 return hr;
2551} 2556}
2552 2557
@@ -2561,6 +2566,7 @@ static HRESULT DoRollbackActions(
2561 DWORD iCheckpoint = 0; 2566 DWORD iCheckpoint = 0;
2562 BOOL fRetryIgnored = FALSE; 2567 BOOL fRetryIgnored = FALSE;
2563 BOOL fSuspendIgnored = FALSE; 2568 BOOL fSuspendIgnored = FALSE;
2569 BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE;
2564 2570
2565 pContext->fRollback = TRUE; 2571 pContext->fRollback = TRUE;
2566 2572
@@ -2598,7 +2604,8 @@ static HRESULT DoRollbackActions(
2598 continue; 2604 continue;
2599 } 2605 }
2600 2606
2601 BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE; 2607 restart = BOOTSTRAPPER_APPLY_RESTART_NONE;
2608
2602 switch (pRollbackAction->type) 2609 switch (pRollbackAction->type)
2603 { 2610 {
2604 case BURN_EXECUTE_ACTION_TYPE_CHECKPOINT: 2611 case BURN_EXECUTE_ACTION_TYPE_CHECKPOINT:
@@ -2674,6 +2681,11 @@ static HRESULT DoRollbackActions(
2674 } 2681 }
2675 2682
2676LExit: 2683LExit:
2684 if (*pRestart < restart)
2685 {
2686 *pRestart = restart;
2687 }
2688
2677 return hr; 2689 return hr;
2678} 2690}
2679 2691
@@ -2791,6 +2803,7 @@ static HRESULT DoRestoreRelatedBundleActions(
2791 HRESULT hr = S_OK; 2803 HRESULT hr = S_OK;
2792 BOOL fRetryIgnored = FALSE; 2804 BOOL fRetryIgnored = FALSE;
2793 BOOL fSuspendIgnored = FALSE; 2805 BOOL fSuspendIgnored = FALSE;
2806 BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE;
2794 2807
2795 // execute restore related bundle actions 2808 // execute restore related bundle actions
2796 for (DWORD i = 0; i < pEngineState->plan.cRestoreRelatedBundleActions; ++i) 2809 for (DWORD i = 0; i < pEngineState->plan.cRestoreRelatedBundleActions; ++i)
@@ -2804,7 +2817,8 @@ static HRESULT DoRestoreRelatedBundleActions(
2804 pContext->wzExecutingPackageId = NULL; 2817 pContext->wzExecutingPackageId = NULL;
2805 pContext->fAbandonedProcess = FALSE; 2818 pContext->fAbandonedProcess = FALSE;
2806 2819
2807 BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE; 2820 restart = BOOTSTRAPPER_APPLY_RESTART_NONE;
2821
2808 switch (pRestoreRelatedBundleAction->type) 2822 switch (pRestoreRelatedBundleAction->type)
2809 { 2823 {
2810 case BURN_EXECUTE_ACTION_TYPE_RELATED_BUNDLE: 2824 case BURN_EXECUTE_ACTION_TYPE_RELATED_BUNDLE:
@@ -2824,6 +2838,11 @@ static HRESULT DoRestoreRelatedBundleActions(
2824 } 2838 }
2825 2839
2826LExit: 2840LExit:
2841 if (*pRestart < restart)
2842 {
2843 *pRestart = restart;
2844 }
2845
2827 return hr; 2846 return hr;
2828} 2847}
2829 2848