diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-30 19:38:33 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-30 21:59:51 -0500 |
| commit | e9a4f673511dd06a8209f3e4037ad20f153d6caa (patch) | |
| tree | df3ea53150c1927f43bd7375d1a33bf0e0491932 /src/engine/dependency.cpp | |
| parent | 5cbe372f0a512babc5db7f519fc407eb40606346 (diff) | |
| download | wix-e9a4f673511dd06a8209f3e4037ad20f153d6caa.tar.gz wix-e9a4f673511dd06a8209f3e4037ad20f153d6caa.tar.bz2 wix-e9a4f673511dd06a8209f3e4037ad20f153d6caa.zip | |
Skip bundle dependent checking when ignoring dependencies includes ALL.
Fixes #6391.
Diffstat (limited to 'src/engine/dependency.cpp')
| -rw-r--r-- | src/engine/dependency.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/engine/dependency.cpp b/src/engine/dependency.cpp index 51aca239..1bd0c7d4 100644 --- a/src/engine/dependency.cpp +++ b/src/engine/dependency.cpp | |||
| @@ -19,7 +19,8 @@ static HRESULT DetectPackageDependents( | |||
| 19 | static HRESULT SplitIgnoreDependencies( | 19 | static HRESULT SplitIgnoreDependencies( |
| 20 | __in_z LPCWSTR wzIgnoreDependencies, | 20 | __in_z LPCWSTR wzIgnoreDependencies, |
| 21 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, | 21 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, |
| 22 | __inout LPUINT pcDependencies | 22 | __inout LPUINT pcDependencies, |
| 23 | __out BOOL* pfIgnoreAll | ||
| 23 | ); | 24 | ); |
| 24 | 25 | ||
| 25 | static HRESULT JoinIgnoreDependencies( | 26 | static HRESULT JoinIgnoreDependencies( |
| @@ -194,7 +195,7 @@ extern "C" HRESULT DependencyInitialize( | |||
| 194 | // Add the list of dependencies to ignore. | 195 | // Add the list of dependencies to ignore. |
| 195 | if (wzIgnoreDependencies) | 196 | if (wzIgnoreDependencies) |
| 196 | { | 197 | { |
| 197 | hr = SplitIgnoreDependencies(wzIgnoreDependencies, &pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies); | 198 | hr = SplitIgnoreDependencies(wzIgnoreDependencies, &pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies, &pRegistration->fIgnoreAllDependents); |
| 198 | ExitOnFailure(hr, "Failed to split the list of dependencies to ignore."); | 199 | ExitOnFailure(hr, "Failed to split the list of dependencies to ignore."); |
| 199 | } | 200 | } |
| 200 | 201 | ||
| @@ -816,12 +817,14 @@ LExit: | |||
| 816 | static HRESULT SplitIgnoreDependencies( | 817 | static HRESULT SplitIgnoreDependencies( |
| 817 | __in_z LPCWSTR wzIgnoreDependencies, | 818 | __in_z LPCWSTR wzIgnoreDependencies, |
| 818 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, | 819 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, |
| 819 | __inout LPUINT pcDependencies | 820 | __inout LPUINT pcDependencies, |
| 821 | __out BOOL* pfIgnoreAll | ||
| 820 | ) | 822 | ) |
| 821 | { | 823 | { |
| 822 | HRESULT hr = S_OK; | 824 | HRESULT hr = S_OK; |
| 823 | LPWSTR wzContext = NULL; | 825 | LPWSTR wzContext = NULL; |
| 824 | STRINGDICT_HANDLE sdIgnoreDependencies = NULL; | 826 | STRINGDICT_HANDLE sdIgnoreDependencies = NULL; |
| 827 | *pfIgnoreAll = FALSE; | ||
| 825 | 828 | ||
| 826 | // Create a dictionary to hold unique dependencies. | 829 | // Create a dictionary to hold unique dependencies. |
| 827 | hr = DictCreateStringList(&sdIgnoreDependencies, INITIAL_STRINGDICT_SIZE, DICT_FLAG_CASEINSENSITIVE); | 830 | hr = DictCreateStringList(&sdIgnoreDependencies, INITIAL_STRINGDICT_SIZE, DICT_FLAG_CASEINSENSITIVE); |
| @@ -842,6 +845,11 @@ static HRESULT SplitIgnoreDependencies( | |||
| 842 | 845 | ||
| 843 | hr = DictAddKey(sdIgnoreDependencies, wzToken); | 846 | hr = DictAddKey(sdIgnoreDependencies, wzToken); |
| 844 | ExitOnFailure(hr, "Failed to add \"%ls\" to the string dictionary.", wzToken); | 847 | ExitOnFailure(hr, "Failed to add \"%ls\" to the string dictionary.", wzToken); |
| 848 | |||
| 849 | if (!*pfIgnoreAll && CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, L"ALL", -1, wzToken, -1)) | ||
| 850 | { | ||
| 851 | *pfIgnoreAll = TRUE; | ||
| 852 | } | ||
| 845 | } | 853 | } |
| 846 | } | 854 | } |
| 847 | 855 | ||
