aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2025-02-11 05:03:30 -0800
committerRob Mensching <rob@firegiant.com>2025-02-11 15:49:33 -0800
commit81fb512834c65b0a8f99c3a266879c476e382875 (patch)
tree5e3c7ec4aa444824f82264312a593b401a452fd7 /src
parent83cb7864064fa6181902c28fc56d26f236881abe (diff)
downloadwix-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
Diffstat (limited to 'src')
-rw-r--r--src/burn/engine/engine.cpp10
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);