diff options
Diffstat (limited to '')
-rw-r--r-- | src/engine/core.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/engine/core.cpp b/src/engine/core.cpp index a4c118a3..36471e93 100644 --- a/src/engine/core.cpp +++ b/src/engine/core.cpp | |||
@@ -331,6 +331,8 @@ extern "C" HRESULT CoreDetect( | |||
331 | } | 331 | } |
332 | 332 | ||
333 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; | 333 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; |
334 | pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_UNKNOWN; | ||
335 | pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_UNKNOWN; | ||
334 | } | 336 | } |
335 | } | 337 | } |
336 | 338 | ||
@@ -342,7 +344,7 @@ extern "C" HRESULT CoreDetect( | |||
342 | { | 344 | { |
343 | pPackage = pEngineState->packages.rgPackages + iPackage; | 345 | pPackage = pEngineState->packages.rgPackages + iPackage; |
344 | 346 | ||
345 | LogId(REPORT_STANDARD, MSG_DETECTED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingCacheStateToString(pPackage->cache)); | 347 | LogId(REPORT_STANDARD, MSG_DETECTED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingCacheStateToString(pPackage->cache), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->installRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->cacheRegistrationState)); |
346 | 348 | ||
347 | if (BURN_PACKAGE_TYPE_MSI == pPackage->type) | 349 | if (BURN_PACKAGE_TYPE_MSI == pPackage->type) |
348 | { | 350 | { |
@@ -565,7 +567,6 @@ extern "C" HRESULT CoreApply( | |||
565 | BOOL fApplyInitialize = FALSE; | 567 | BOOL fApplyInitialize = FALSE; |
566 | BOOL fElevated = FALSE; | 568 | BOOL fElevated = FALSE; |
567 | BOOL fRegistered = FALSE; | 569 | BOOL fRegistered = FALSE; |
568 | BOOL fKeepRegistration = pEngineState->plan.fKeepRegistrationDefault; | ||
569 | BOOL fRollback = FALSE; | 570 | BOOL fRollback = FALSE; |
570 | BOOL fSuspend = FALSE; | 571 | BOOL fSuspend = FALSE; |
571 | BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE; | 572 | BOOTSTRAPPER_APPLY_RESTART restart = BOOTSTRAPPER_APPLY_RESTART_NONE; |
@@ -652,9 +653,9 @@ extern "C" HRESULT CoreApply( | |||
652 | // Register. | 653 | // Register. |
653 | if (pEngineState->plan.fRegister) | 654 | if (pEngineState->plan.fRegister) |
654 | { | 655 | { |
656 | fRegistered = TRUE; | ||
655 | hr = ApplyRegister(pEngineState); | 657 | hr = ApplyRegister(pEngineState); |
656 | ExitOnFailure(hr, "Failed to register bundle."); | 658 | ExitOnFailure(hr, "Failed to register bundle."); |
657 | fRegistered = TRUE; | ||
658 | } | 659 | } |
659 | 660 | ||
660 | // Cache. | 661 | // Cache. |
@@ -681,7 +682,7 @@ extern "C" HRESULT CoreApply( | |||
681 | // Execute. | 682 | // Execute. |
682 | if (pEngineState->plan.cExecuteActions) | 683 | if (pEngineState->plan.cExecuteActions) |
683 | { | 684 | { |
684 | hr = ApplyExecute(pEngineState, hCacheThread, &cOverallProgressTicks, &fKeepRegistration, &fRollback, &fSuspend, &restart); | 685 | hr = ApplyExecute(pEngineState, hCacheThread, &cOverallProgressTicks, &fRollback, &fSuspend, &restart); |
685 | UserExperienceExecutePhaseComplete(&pEngineState->userExperience, hr); // signal that execute completed. | 686 | UserExperienceExecutePhaseComplete(&pEngineState->userExperience, hr); // signal that execute completed. |
686 | } | 687 | } |
687 | 688 | ||
@@ -711,7 +712,7 @@ LExit: | |||
711 | // Unregister. | 712 | // Unregister. |
712 | if (fRegistered) | 713 | if (fRegistered) |
713 | { | 714 | { |
714 | ApplyUnregister(pEngineState, FAILED(hr) || fRollback, fKeepRegistration || pEngineState->plan.fDisallowRemoval, fSuspend, restart); | 715 | ApplyUnregister(pEngineState, FAILED(hr) || fRollback, fSuspend, restart); |
715 | } | 716 | } |
716 | 717 | ||
717 | if (fElevated) | 718 | if (fElevated) |
@@ -1611,6 +1612,11 @@ static HRESULT DetectPackagePayloadsCached( | |||
1611 | 1612 | ||
1612 | pPackage->cache = cache; | 1613 | pPackage->cache = cache; |
1613 | 1614 | ||
1615 | if (pPackage->fCanAffectRegistration) | ||
1616 | { | ||
1617 | pPackage->cacheRegistrationState = BURN_CACHE_STATE_NONE < pPackage->cache ? BURN_PACKAGE_REGISTRATION_STATE_PRESENT : BURN_PACKAGE_REGISTRATION_STATE_ABSENT; | ||
1618 | } | ||
1619 | |||
1614 | LExit: | 1620 | LExit: |
1615 | ReleaseStr(sczPayloadCachePath); | 1621 | ReleaseStr(sczPayloadCachePath); |
1616 | ReleaseStr(sczCachePath); | 1622 | ReleaseStr(sczCachePath); |
@@ -1703,7 +1709,7 @@ static void LogPackages( | |||
1703 | const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i; | 1709 | const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i; |
1704 | const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage]; | 1710 | const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage]; |
1705 | 1711 | ||
1706 | LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingBoolToString(pPackage->fAcquire), LoggingBoolToString(pPackage->fUncache), LoggingDependencyActionToString(pPackage->dependencyExecute)); | 1712 | LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingBoolToString(pPackage->fAcquire), LoggingBoolToString(pPackage->fUncache), LoggingDependencyActionToString(pPackage->dependencyExecute), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedInstallRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedCacheRegistrationState)); |
1707 | } | 1713 | } |
1708 | 1714 | ||
1709 | // Display related bundles last if caching, installing, modifying, or repairing. | 1715 | // Display related bundles last if caching, installing, modifying, or repairing. |