aboutsummaryrefslogtreecommitdiff
path: root/src/engine/apply.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-16 09:40:18 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-19 23:12:55 -0500
commit941c47e5a3f57ce9626b447a95740b1444e69343 (patch)
tree6225b78f5fc7c8f88a2abf187a6a76d45b36ec26 /src/engine/apply.cpp
parentd32f770ca05748df9e356444c7e617d5eeedb60c (diff)
downloadwix-941c47e5a3f57ce9626b447a95740b1444e69343.tar.gz
wix-941c47e5a3f57ce9626b447a95740b1444e69343.tar.bz2
wix-941c47e5a3f57ce9626b447a95740b1444e69343.zip
Detect a package as cached if any of its payloads exist.
Detect is supposed to be fast, so it can't fully verify every payload for every package. The engine was wasting its time by trying to verify file sizes without the hash. Even worse, it was making decisions during planning based on that insufficient verification. Contributes to #3640
Diffstat (limited to 'src/engine/apply.cpp')
-rw-r--r--src/engine/apply.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/engine/apply.cpp b/src/engine/apply.cpp
index 2815f7da..b79bf934 100644
--- a/src/engine/apply.cpp
+++ b/src/engine/apply.cpp
@@ -1910,6 +1910,8 @@ static HRESULT DoRollbackActions(
1910 ExitFunction1(hr = S_OK); 1910 ExitFunction1(hr = S_OK);
1911 1911
1912 case BURN_EXECUTE_ACTION_TYPE_UNCACHE_PACKAGE: 1912 case BURN_EXECUTE_ACTION_TYPE_UNCACHE_PACKAGE:
1913 // TODO: This used to be skipped if the package was already cached.
1914 // Need to figure out new logic for when (if?) to skip it.
1913 hr = CleanPackage(pEngineState->companionConnection.hPipe, pRollbackAction->uncachePackage.pPackage); 1915 hr = CleanPackage(pEngineState->companionConnection.hPipe, pRollbackAction->uncachePackage.pPackage);
1914 IgnoreRollbackError(hr, "Failed to uncache package for rollback."); 1916 IgnoreRollbackError(hr, "Failed to uncache package for rollback.");
1915 break; 1917 break;