aboutsummaryrefslogtreecommitdiff
path: root/src/engine/core.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-03-10 18:18:38 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-03-11 20:24:18 -0600
commitaf68033509730ffe01602f839861a47287bb709f (patch)
tree2960f6cdd023e74a4ca2bbc49d0294b7bfbed5c5 /src/engine/core.cpp
parent10ef9d5bfbf81f454113a1c2716009831a916222 (diff)
downloadwix-af68033509730ffe01602f839861a47287bb709f.tar.gz
wix-af68033509730ffe01602f839861a47287bb709f.tar.bz2
wix-af68033509730ffe01602f839861a47287bb709f.zip
Handle when related bundles have an uninstall key but aren't cached.
#4991
Diffstat (limited to 'src/engine/core.cpp')
-rw-r--r--src/engine/core.cpp39
1 files changed, 26 insertions, 13 deletions
diff --git a/src/engine/core.cpp b/src/engine/core.cpp
index eb8a84fe..50ed6ea0 100644
--- a/src/engine/core.cpp
+++ b/src/engine/core.cpp
@@ -59,6 +59,10 @@ static void LogPackages(
59 __in const BURN_RELATED_BUNDLES* pRelatedBundles, 59 __in const BURN_RELATED_BUNDLES* pRelatedBundles,
60 __in const BOOTSTRAPPER_ACTION action 60 __in const BOOTSTRAPPER_ACTION action
61 ); 61 );
62static void LogRelatedBundles(
63 __in const BURN_RELATED_BUNDLES* pRelatedBundles,
64 __in BOOL fReverse
65 );
62 66
63 67
64// function definitions 68// function definitions
@@ -1793,15 +1797,9 @@ static void LogPackages(
1793 else 1797 else
1794 { 1798 {
1795 // Display related bundles first if uninstalling. 1799 // Display related bundles first if uninstalling.
1796 if (BOOTSTRAPPER_ACTION_UNINSTALL == action && 0 < pRelatedBundles->cRelatedBundles) 1800 if (BOOTSTRAPPER_ACTION_UNINSTALL == action)
1797 { 1801 {
1798 for (int i = pRelatedBundles->cRelatedBundles - 1; 0 <= i; --i) 1802 LogRelatedBundles(pRelatedBundles, TRUE);
1799 {
1800 const BURN_RELATED_BUNDLE* pRelatedBundle = &pRelatedBundles->rgRelatedBundles[i];
1801 const BURN_PACKAGE* pPackage = &pRelatedBundle->package;
1802
1803 LogId(REPORT_STANDARD, MSG_PLANNED_RELATED_BUNDLE, pPackage->sczId, LoggingRelationTypeToString(pRelatedBundle->relationType), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingDependencyActionToString(pPackage->dependencyExecute));
1804 }
1805 } 1803 }
1806 1804
1807 // Display all the packages in the log. 1805 // Display all the packages in the log.
@@ -1852,13 +1850,28 @@ static void LogPackages(
1852 } 1850 }
1853 1851
1854 // Display related bundles last if caching, installing, modifying, or repairing. 1852 // Display related bundles last if caching, installing, modifying, or repairing.
1855 if (BOOTSTRAPPER_ACTION_UNINSTALL < action && 0 < pRelatedBundles->cRelatedBundles) 1853 if (BOOTSTRAPPER_ACTION_UNINSTALL < action)
1856 { 1854 {
1857 for (DWORD i = 0; i < pRelatedBundles->cRelatedBundles; ++i) 1855 LogRelatedBundles(pRelatedBundles, FALSE);
1858 { 1856 }
1859 const BURN_RELATED_BUNDLE* pRelatedBundle = &pRelatedBundles->rgRelatedBundles[i]; 1857 }
1860 const BURN_PACKAGE* pPackage = &pRelatedBundle->package; 1858}
1859
1860static void LogRelatedBundles(
1861 __in const BURN_RELATED_BUNDLES* pRelatedBundles,
1862 __in BOOL fReverse
1863 )
1864{
1865 if (0 < pRelatedBundles->cRelatedBundles)
1866 {
1867 for (DWORD i = 0; i < pRelatedBundles->cRelatedBundles; ++i)
1868 {
1869 const DWORD iRelatedBundle = fReverse ? pRelatedBundles->cRelatedBundles - 1 - i : i;
1870 const BURN_RELATED_BUNDLE* pRelatedBundle = pRelatedBundles->rgRelatedBundles + iRelatedBundle;
1871 const BURN_PACKAGE* pPackage = &pRelatedBundle->package;
1861 1872
1873 if (pRelatedBundle->fPlannable)
1874 {
1862 LogId(REPORT_STANDARD, MSG_PLANNED_RELATED_BUNDLE, pPackage->sczId, LoggingRelationTypeToString(pRelatedBundle->relationType), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingDependencyActionToString(pPackage->dependencyExecute)); 1875 LogId(REPORT_STANDARD, MSG_PLANNED_RELATED_BUNDLE, pPackage->sczId, LoggingRelationTypeToString(pRelatedBundle->relationType), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingDependencyActionToString(pPackage->dependencyExecute));
1863 } 1876 }
1864 } 1877 }