From a2b98c1abd6e6a1469936af5d93e4ace713b3fba Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 31 Jan 2022 16:43:44 -0600 Subject: Remove some assumptions in dependency planning. * A package might be installed even if it was already present. * A package might be uninstalled even if it was already absent. * The bundle might not actually be uninstalled even if the planned action was uninstall. Fixes #6510 --- src/burn/engine/detect.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/burn/engine/detect.cpp') diff --git a/src/burn/engine/detect.cpp b/src/burn/engine/detect.cpp index 617b418b..e251871c 100644 --- a/src/burn/engine/detect.cpp +++ b/src/burn/engine/detect.cpp @@ -57,7 +57,6 @@ extern "C" void DetectReset( BURN_PACKAGE* pPackage = pPackages->rgPackages + iPackage; pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; - pPackage->fPackageProviderExists = FALSE; pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_UNKNOWN; pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_UNKNOWN; @@ -92,6 +91,9 @@ extern "C" void DetectReset( { BURN_DEPENDENCY_PROVIDER* pProvider = pPackage->rgDependencyProviders + iProvider; + pProvider->fExists = FALSE; + pProvider->fBundleRegisteredAsDependent = FALSE; + if (pProvider->rgDependents) { ReleaseDependencyArray(pProvider->rgDependents, pProvider->cDependents); -- cgit v1.2.3-55-g6feb