diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-01-03 15:35:14 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-01-04 19:19:43 -0600 |
| commit | 1f5314302b3c8bc1977aed79df1d05c52608f382 (patch) | |
| tree | f0fef3a4462352c914a4cc9413515d07f2244703 /src/burn/engine/package.cpp | |
| parent | db44f6cf3b1eb476e47384f2eccba5712808def5 (diff) | |
| download | wix-1f5314302b3c8bc1977aed79df1d05c52608f382.tar.gz wix-1f5314302b3c8bc1977aed79df1d05c52608f382.tar.bz2 wix-1f5314302b3c8bc1977aed79df1d05c52608f382.zip | |
Don't assume Exe packages with Burn protocol are bundles.
Related to #3693
Diffstat (limited to 'src/burn/engine/package.cpp')
| -rw-r--r-- | src/burn/engine/package.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp index bea48cb5..d9087f79 100644 --- a/src/burn/engine/package.cpp +++ b/src/burn/engine/package.cpp | |||
| @@ -350,6 +350,9 @@ extern "C" void PackageUninitialize( | |||
| 350 | 350 | ||
| 351 | switch (pPackage->type) | 351 | switch (pPackage->type) |
| 352 | { | 352 | { |
| 353 | case BURN_PACKAGE_TYPE_BUNDLE: | ||
| 354 | BundlePackageEnginePackageUninitialize(pPackage); | ||
| 355 | break; | ||
| 353 | case BURN_PACKAGE_TYPE_EXE: | 356 | case BURN_PACKAGE_TYPE_EXE: |
| 354 | ExeEnginePackageUninitialize(pPackage); // TODO: Modularization | 357 | ExeEnginePackageUninitialize(pPackage); // TODO: Modularization |
| 355 | break; | 358 | break; |
| @@ -439,22 +442,11 @@ extern "C" HRESULT PackageFindRelatedById( | |||
| 439 | ) | 442 | ) |
| 440 | { | 443 | { |
| 441 | HRESULT hr = S_OK; | 444 | HRESULT hr = S_OK; |
| 442 | BURN_PACKAGE* pPackage = NULL; | 445 | BURN_RELATED_BUNDLE* pRelatedBundle = NULL; |
| 443 | 446 | ||
| 444 | for (DWORD i = 0; i < pRelatedBundles->cRelatedBundles; ++i) | 447 | hr = RelatedBundleFindById(pRelatedBundles, wzId, &pRelatedBundle); |
| 445 | { | 448 | *ppPackage = FAILED(hr) ? NULL : &pRelatedBundle->package; |
| 446 | pPackage = &pRelatedBundles->rgRelatedBundles[i].package; | ||
| 447 | |||
| 448 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pPackage->sczId, -1, wzId, -1)) | ||
| 449 | { | ||
| 450 | *ppPackage = pPackage; | ||
| 451 | ExitFunction1(hr = S_OK); | ||
| 452 | } | ||
| 453 | } | ||
| 454 | 449 | ||
| 455 | hr = E_NOTFOUND; | ||
| 456 | |||
| 457 | LExit: | ||
| 458 | return hr; | 450 | return hr; |
| 459 | } | 451 | } |
| 460 | 452 | ||
