summaryrefslogtreecommitdiff
path: root/src/burn/engine/plan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/plan.cpp')
-rw-r--r--src/burn/engine/plan.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp
index 18f9b274..5c9ebe08 100644
--- a/src/burn/engine/plan.cpp
+++ b/src/burn/engine/plan.cpp
@@ -2805,13 +2805,16 @@ static BURN_CACHE_PACKAGE_TYPE GetCachePackageType(
2805 case BOOTSTRAPPER_ACTION_STATE_NONE: 2805 case BOOTSTRAPPER_ACTION_STATE_NONE:
2806 break; 2806 break;
2807 case BOOTSTRAPPER_ACTION_STATE_UNINSTALL: 2807 case BOOTSTRAPPER_ACTION_STATE_UNINSTALL:
2808 if (BURN_PACKAGE_TYPE_BUNDLE == pPackage->type || 2808 if (BURN_PACKAGE_TYPE_EXE == pPackage->type && BURN_EXE_DETECTION_TYPE_ARP != pPackage->Exe.detectionType)
2809 BURN_PACKAGE_TYPE_EXE == pPackage->type && BURN_EXE_DETECTION_TYPE_ARP != pPackage->Exe.detectionType)
2810 { 2809 {
2811 // Bundle and non-ArpEntry Exe packages require the package for all operations (even uninstall). 2810 // non-ArpEntry Exe packages require the package for all operations (even uninstall).
2812 // TODO: bundles could theoretically use package cache.
2813 cachePackageType = BURN_CACHE_PACKAGE_TYPE_REQUIRED; 2811 cachePackageType = BURN_CACHE_PACKAGE_TYPE_REQUIRED;
2814 } 2812 }
2813 else if (BURN_PACKAGE_TYPE_BUNDLE == pPackage->type)
2814 {
2815 // Bundle packages prefer the cache but can fallback to the ARP registration.
2816 cachePackageType = BURN_CACHE_PACKAGE_TYPE_OPTIONAL;
2817 }
2815 else 2818 else
2816 { 2819 {
2817 // The other package types can uninstall without the original package. 2820 // The other package types can uninstall without the original package.
@@ -2823,6 +2826,7 @@ static BURN_CACHE_PACKAGE_TYPE GetCachePackageType(
2823 case BOOTSTRAPPER_ACTION_STATE_REPAIR: __fallthrough; 2826 case BOOTSTRAPPER_ACTION_STATE_REPAIR: __fallthrough;
2824 case BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE: __fallthrough; 2827 case BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE: __fallthrough;
2825 default: 2828 default:
2829 // TODO: bundles could theoretically use package cache.
2826 cachePackageType = BURN_CACHE_PACKAGE_TYPE_REQUIRED; 2830 cachePackageType = BURN_CACHE_PACKAGE_TYPE_REQUIRED;
2827 break; 2831 break;
2828 } 2832 }