diff options
Diffstat (limited to 'src/burn/engine/plan.cpp')
-rw-r--r-- | src/burn/engine/plan.cpp | 12 |
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 | } |