diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-02 18:09:58 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-04 22:16:10 -0600 |
commit | fd8c2b0899bfbce07386af245c04eb21dc01cbdf (patch) | |
tree | 33d928124b0028729916189ddb9f239a9574c75d /src/engine/logging.cpp | |
parent | 39725a1a6d1c72a6748bd3c306af32bcae6dbf8f (diff) | |
download | wix-fd8c2b0899bfbce07386af245c04eb21dc01cbdf.tar.gz wix-fd8c2b0899bfbce07386af245c04eb21dc01cbdf.tar.bz2 wix-fd8c2b0899bfbce07386af245c04eb21dc01cbdf.zip |
Update the logic for determining when the bundle should be registered.
The basic rule is that if a non-permanent package is present at the end of the chain, then the bundle should be registered. If no non-permanent packages are present at the end of the chain, then the bundle should not be registered. This required tracking what actually happened with each package during Apply.
Include cache status in registration calculation.
Include dependency ref-counting when determining whether the bundle should be registered.
Diffstat (limited to 'src/engine/logging.cpp')
-rw-r--r-- | src/engine/logging.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/engine/logging.cpp b/src/engine/logging.cpp index 9dca527a..a9646218 100644 --- a/src/engine/logging.cpp +++ b/src/engine/logging.cpp | |||
@@ -399,6 +399,31 @@ extern "C" LPCSTR LoggingPackageStateToString( | |||
399 | } | 399 | } |
400 | } | 400 | } |
401 | 401 | ||
402 | extern "C" LPCSTR LoggingPackageRegistrationStateToString( | ||
403 | __in BOOL fCanAffectRegistration, | ||
404 | __in BURN_PACKAGE_REGISTRATION_STATE registrationState | ||
405 | ) | ||
406 | { | ||
407 | if (!fCanAffectRegistration) | ||
408 | { | ||
409 | return "(permanent)"; | ||
410 | } | ||
411 | |||
412 | switch (registrationState) | ||
413 | { | ||
414 | case BURN_PACKAGE_REGISTRATION_STATE_UNKNOWN: | ||
415 | return "Unknown"; | ||
416 | case BURN_PACKAGE_REGISTRATION_STATE_IGNORED: | ||
417 | return "Ignored"; | ||
418 | case BURN_PACKAGE_REGISTRATION_STATE_ABSENT: | ||
419 | return "Absent"; | ||
420 | case BURN_PACKAGE_REGISTRATION_STATE_PRESENT: | ||
421 | return "Present"; | ||
422 | default: | ||
423 | return "Invalid"; | ||
424 | } | ||
425 | } | ||
426 | |||
402 | extern "C" LPCSTR LoggingCacheStateToString( | 427 | extern "C" LPCSTR LoggingCacheStateToString( |
403 | __in BURN_CACHE_STATE cacheState | 428 | __in BURN_CACHE_STATE cacheState |
404 | ) | 429 | ) |