diff options
author | Rob Mensching <rob@firegiant.com> | 2025-02-11 05:03:30 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2025-02-11 15:49:33 -0800 |
commit | 81fb512834c65b0a8f99c3a266879c476e382875 (patch) | |
tree | 5e3c7ec4aa444824f82264312a593b401a452fd7 | |
parent | 83cb7864064fa6181902c28fc56d26f236881abe (diff) | |
download | wix-81fb512834c65b0a8f99c3a266879c476e382875.tar.gz wix-81fb512834c65b0a8f99c3a266879c476e382875.tar.bz2 wix-81fb512834c65b0a8f99c3a266879c476e382875.zip |
Remove the working folder as late as possible
Clean up the base working folder *after* the elevated engine is shutdown to
prevent the scheduling of PendingFileRenameOptions during clean up.
Fixes 8053
-rw-r--r-- | src/burn/engine/engine.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/burn/engine/engine.cpp b/src/burn/engine/engine.cpp index d7ef40d7..5fec289d 100644 --- a/src/burn/engine/engine.cpp +++ b/src/burn/engine/engine.cpp | |||
@@ -239,11 +239,6 @@ LExit: | |||
239 | LoggingOpenFailed(); | 239 | LoggingOpenFailed(); |
240 | } | 240 | } |
241 | 241 | ||
242 | BootstrapperApplicationRemove(&engineState.userExperience); | ||
243 | |||
244 | CacheRemoveBaseWorkingFolder(&engineState.cache); | ||
245 | CacheUninitialize(&engineState.cache); | ||
246 | |||
247 | // If this is a related bundle (but not an update) suppress restart and return the standard restart error code. | 242 | // If this is a related bundle (but not an update) suppress restart and return the standard restart error code. |
248 | if (engineState.fRestart && BOOTSTRAPPER_RELATION_NONE != engineState.command.relationType && BOOTSTRAPPER_RELATION_UPDATE != engineState.command.relationType) | 243 | if (engineState.fRestart && BOOTSTRAPPER_RELATION_NONE != engineState.command.relationType && BOOTSTRAPPER_RELATION_UPDATE != engineState.command.relationType) |
249 | { | 244 | { |
@@ -312,6 +307,10 @@ LExit: | |||
312 | LogId(REPORT_STANDARD, MSG_EXITING_ELEVATED, FAILED(hr) ? (int)hr : *pdwExitCode); | 307 | LogId(REPORT_STANDARD, MSG_EXITING_ELEVATED, FAILED(hr) ? (int)hr : *pdwExitCode); |
313 | } | 308 | } |
314 | 309 | ||
310 | BootstrapperApplicationRemove(&engineState.userExperience); | ||
311 | |||
312 | CacheRemoveBaseWorkingFolder(&engineState.cache); | ||
313 | |||
315 | UninitializeEngineState(&engineState); | 314 | UninitializeEngineState(&engineState); |
316 | 315 | ||
317 | if (fXmlInitialized) | 316 | if (fXmlInitialized) |
@@ -433,6 +432,7 @@ static void UninitializeEngineState( | |||
433 | PackagesUninitialize(&pEngineState->packages); | 432 | PackagesUninitialize(&pEngineState->packages); |
434 | SectionUninitialize(&pEngineState->section); | 433 | SectionUninitialize(&pEngineState->section); |
435 | ContainersUninitialize(&pEngineState->containers); | 434 | ContainersUninitialize(&pEngineState->containers); |
435 | CacheUninitialize(&pEngineState->cache); | ||
436 | 436 | ||
437 | ReleaseStr(pEngineState->command.wzBootstrapperApplicationDataPath); | 437 | ReleaseStr(pEngineState->command.wzBootstrapperApplicationDataPath); |
438 | ReleaseStr(pEngineState->command.wzBootstrapperWorkingFolder); | 438 | ReleaseStr(pEngineState->command.wzBootstrapperWorkingFolder); |