diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 19:58:44 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-22 20:25:06 -0600 |
| commit | a98115d996d65834e7c8d593c10d2cfa66096ccd (patch) | |
| tree | 11857990bfadee576b4a8d6d8ccc2db04dfafe7b /src/engine/apply.cpp | |
| parent | 4f4c85ed66f1b2dfb1bec76d54d7b50c637d5bfa (diff) | |
| download | wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.tar.gz wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.tar.bz2 wix-a98115d996d65834e7c8d593c10d2cfa66096ccd.zip | |
Fix patch registration states during plan and apply.
Add logging for slipstreamed patches.
#6297
Diffstat (limited to 'src/engine/apply.cpp')
| -rw-r--r-- | src/engine/apply.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/engine/apply.cpp b/src/engine/apply.cpp index 55141ef9..44ff9429 100644 --- a/src/engine/apply.cpp +++ b/src/engine/apply.cpp | |||
| @@ -2032,7 +2032,7 @@ static HRESULT ExecuteMsiPackage( | |||
| 2032 | LExit: | 2032 | LExit: |
| 2033 | if (fExecuted) | 2033 | if (fExecuted) |
| 2034 | { | 2034 | { |
| 2035 | MsiEngineUpdateInstallRegistrationState(pExecuteAction, hrExecute, fInsideMsiTransaction); | 2035 | MsiEngineUpdateInstallRegistrationState(pExecuteAction, fRollback, hrExecute, fInsideMsiTransaction); |
| 2036 | } | 2036 | } |
| 2037 | 2037 | ||
| 2038 | if (fBeginCalled) | 2038 | if (fBeginCalled) |
| @@ -2248,7 +2248,20 @@ static HRESULT ExecuteDependencyAction( | |||
| 2248 | { | 2248 | { |
| 2249 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | 2249 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; |
| 2250 | } | 2250 | } |
| 2251 | if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pAction->packageDependency.pPackage->installRegistrationState) | 2251 | |
| 2252 | if (BURN_PACKAGE_TYPE_MSP == pAction->packageDependency.pPackage->type) | ||
| 2253 | { | ||
| 2254 | for (DWORD i = 0; i < pAction->packageDependency.pPackage->Msp.cTargetProductCodes; ++i) | ||
| 2255 | { | ||
| 2256 | BURN_MSPTARGETPRODUCT* pTargetProduct = pAction->packageDependency.pPackage->Msp.rgTargetProducts + i; | ||
| 2257 | |||
| 2258 | if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pTargetProduct->registrationState) | ||
| 2259 | { | ||
| 2260 | pTargetProduct->registrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | ||
| 2261 | } | ||
| 2262 | } | ||
| 2263 | } | ||
| 2264 | else if (BURN_PACKAGE_REGISTRATION_STATE_IGNORED == pAction->packageDependency.pPackage->installRegistrationState) | ||
| 2252 | { | 2265 | { |
| 2253 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; | 2266 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; |
| 2254 | } | 2267 | } |
| @@ -2259,7 +2272,20 @@ static HRESULT ExecuteDependencyAction( | |||
| 2259 | { | 2272 | { |
| 2260 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | 2273 | pAction->packageDependency.pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; |
| 2261 | } | 2274 | } |
| 2262 | if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pAction->packageDependency.pPackage->installRegistrationState) | 2275 | |
| 2276 | if (BURN_PACKAGE_TYPE_MSP == pAction->packageDependency.pPackage->type) | ||
| 2277 | { | ||
| 2278 | for (DWORD i = 0; i < pAction->packageDependency.pPackage->Msp.cTargetProductCodes; ++i) | ||
| 2279 | { | ||
| 2280 | BURN_MSPTARGETPRODUCT* pTargetProduct = pAction->packageDependency.pPackage->Msp.rgTargetProducts + i; | ||
| 2281 | |||
| 2282 | if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pTargetProduct->registrationState) | ||
| 2283 | { | ||
| 2284 | pTargetProduct->registrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | ||
| 2285 | } | ||
| 2286 | } | ||
| 2287 | } | ||
| 2288 | else if (BURN_PACKAGE_REGISTRATION_STATE_PRESENT == pAction->packageDependency.pPackage->installRegistrationState) | ||
| 2263 | { | 2289 | { |
| 2264 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; | 2290 | pAction->packageDependency.pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_IGNORED; |
| 2265 | } | 2291 | } |
