aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/dependency.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/dependency.cpp')
-rw-r--r--src/burn/engine/dependency.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/burn/engine/dependency.cpp b/src/burn/engine/dependency.cpp
index 767d5004..6f80c21b 100644
--- a/src/burn/engine/dependency.cpp
+++ b/src/burn/engine/dependency.cpp
@@ -419,6 +419,7 @@ extern "C" HRESULT DependencyPlanPackageBegin(
419 STRINGDICT_HANDLE sdIgnoredDependents = NULL; 419 STRINGDICT_HANDLE sdIgnoredDependents = NULL;
420 BURN_DEPENDENCY_ACTION dependencyExecuteAction = BURN_DEPENDENCY_ACTION_NONE; 420 BURN_DEPENDENCY_ACTION dependencyExecuteAction = BURN_DEPENDENCY_ACTION_NONE;
421 BURN_DEPENDENCY_ACTION dependencyRollbackAction = BURN_DEPENDENCY_ACTION_NONE; 421 BURN_DEPENDENCY_ACTION dependencyRollbackAction = BURN_DEPENDENCY_ACTION_NONE;
422 BOOL fDependenciesForcedAbsent = FALSE;
422 BOOL fDependentBlocksUninstall = FALSE; 423 BOOL fDependentBlocksUninstall = FALSE;
423 BOOL fAttemptingUninstall = BOOTSTRAPPER_ACTION_STATE_UNINSTALL == pPackage->execute || pPackage->compatiblePackage.fRemove; 424 BOOL fAttemptingUninstall = BOOTSTRAPPER_ACTION_STATE_UNINSTALL == pPackage->execute || pPackage->compatiblePackage.fRemove;
424 425
@@ -467,7 +468,16 @@ extern "C" HRESULT DependencyPlanPackageBegin(
467 { 468 {
468 hr = S_OK; 469 hr = S_OK;
469 470
470 if (!fDependentBlocksUninstall) 471 if (BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT == pPackage->requested)
472 {
473 if (!fDependenciesForcedAbsent)
474 {
475 fDependenciesForcedAbsent = TRUE;
476
477 LogId(REPORT_STANDARD, MSG_DEPENDENCY_PACKAGE_DEPENDENTS_OVERRIDDEN, pPackage->sczId);
478 }
479 }
480 else if (!fDependentBlocksUninstall)
471 { 481 {
472 fDependentBlocksUninstall = TRUE; 482 fDependentBlocksUninstall = TRUE;
473 483