aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-02-04 20:18:02 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-02-04 22:16:10 -0600
commitc5b9c47a26ca4e9d4eea63b7219b4d34938a5f1a (patch)
tree1c031f6bea38cad0fa88af7bf7b89caf1b1a3ba8
parentdc992c49f30e0d2b912a6449a33b4448ef862f31 (diff)
downloadwix-c5b9c47a26ca4e9d4eea63b7219b4d34938a5f1a.tar.gz
wix-c5b9c47a26ca4e9d4eea63b7219b4d34938a5f1a.tar.bz2
wix-c5b9c47a26ca4e9d4eea63b7219b4d34938a5f1a.zip
Finalize MSP package registration states before logging them.
-rw-r--r--src/engine/apply.cpp10
-rw-r--r--src/engine/core.cpp2
-rw-r--r--src/engine/mspengine.cpp9
3 files changed, 13 insertions, 8 deletions
diff --git a/src/engine/apply.cpp b/src/engine/apply.cpp
index 8d2f5757..7c47ba75 100644
--- a/src/engine/apply.cpp
+++ b/src/engine/apply.cpp
@@ -885,6 +885,11 @@ static void CalculateKeepRegistration(
885 { 885 {
886 BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; 886 BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i;
887 887
888 if (BURN_PACKAGE_TYPE_MSP == pPackage->type)
889 {
890 MspEngineFinalizeInstallRegistrationState(pPackage);
891 }
892
888 LogId(REPORT_STANDARD, MSG_POST_APPLY_PACKAGE, pPackage->sczId, LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->installRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->cacheRegistrationState)); 893 LogId(REPORT_STANDARD, MSG_POST_APPLY_PACKAGE, pPackage->sczId, LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->installRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->cacheRegistrationState));
889 894
890 if (!pPackage->fCanAffectRegistration) 895 if (!pPackage->fCanAffectRegistration)
@@ -892,11 +897,6 @@ static void CalculateKeepRegistration(
892 continue; 897 continue;
893 } 898 }
894 899
895 if (BURN_PACKAGE_TYPE_MSP == pPackage->type)
896 {
897 MspEngineFinalizeInstallRegistrationState(pPackage);
898 }
899
900 if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pPackage->installRegistrationState || 900 if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pPackage->installRegistrationState ||
901 BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pPackage->cacheRegistrationState) 901 BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pPackage->cacheRegistrationState)
902 { 902 {
diff --git a/src/engine/core.cpp b/src/engine/core.cpp
index 1503f8d8..644752ff 100644
--- a/src/engine/core.cpp
+++ b/src/engine/core.cpp
@@ -1103,8 +1103,6 @@ extern "C" HRESULT CoreCleanup(
1103 hr = CoreApply(pEngineState, pEngineState->hMessageWindow); 1103 hr = CoreApply(pEngineState, pEngineState->hMessageWindow);
1104 ExitOnFailure(hr, "Apply during cleanup failed"); 1104 ExitOnFailure(hr, "Apply during cleanup failed");
1105 1105
1106 // Need to think about cache=always
1107
1108LExit: 1106LExit:
1109 return hr; 1107 return hr;
1110} 1108}
diff --git a/src/engine/mspengine.cpp b/src/engine/mspengine.cpp
index c0329d79..2c3a866a 100644
--- a/src/engine/mspengine.cpp
+++ b/src/engine/mspengine.cpp
@@ -732,7 +732,11 @@ extern "C" void MspEngineFinalizeInstallRegistrationState(
732 __in BURN_PACKAGE* pPackage 732 __in BURN_PACKAGE* pPackage
733 ) 733 )
734{ 734{
735 Assert(pPackage->fCanAffectRegistration); 735 if (!pPackage->fCanAffectRegistration)
736 {
737 ExitFunction();
738 }
739
736 pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_ABSENT; 740 pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_ABSENT;
737 741
738 for (DWORD i = 0; i < pPackage->Msp.cTargetProductCodes; ++i) 742 for (DWORD i = 0; i < pPackage->Msp.cTargetProductCodes; ++i)
@@ -745,6 +749,9 @@ extern "C" void MspEngineFinalizeInstallRegistrationState(
745 break; 749 break;
746 } 750 }
747 } 751 }
752
753LExit:
754 return;
748} 755}
749 756
750 757