aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/package.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-14 21:37:24 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 10:30:28 -0600
commitda1d1376953ef1c9afb32d5eee02b785e52e372e (patch)
tree0df8550960259d7b13f5cd90f04d21b5576f16b7 /src/burn/engine/package.cpp
parentabe316b80fae80eba54b0b79e76b6362105fa098 (diff)
downloadwix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.gz
wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.tar.bz2
wix-da1d1376953ef1c9afb32d5eee02b785e52e372e.zip
Remove orphan compatible MSI packages.
Reimplements #3190
Diffstat (limited to 'src/burn/engine/package.cpp')
-rw-r--r--src/burn/engine/package.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp
index d9087f79..d9f92d3d 100644
--- a/src/burn/engine/package.cpp
+++ b/src/burn/engine/package.cpp
@@ -366,6 +366,31 @@ extern "C" void PackageUninitialize(
366 MsuEnginePackageUninitialize(pPackage); // TODO: Modularization 366 MsuEnginePackageUninitialize(pPackage); // TODO: Modularization
367 break; 367 break;
368 } 368 }
369
370 PackageUninitializeCompatible(&pPackage->compatiblePackage);
371}
372
373extern "C" void PackageUninitializeCompatible(
374 __in BURN_COMPATIBLE_PACKAGE* pCompatiblePackage
375 )
376{
377 ReleaseStr(pCompatiblePackage->compatibleEntry.sczId);
378 ReleaseStr(pCompatiblePackage->compatibleEntry.sczName);
379 ReleaseStr(pCompatiblePackage->compatibleEntry.sczProviderKey);
380 ReleaseStr(pCompatiblePackage->compatibleEntry.sczVersion);
381
382 ReleaseStr(pCompatiblePackage->sczCacheId);
383
384 switch (pCompatiblePackage->type)
385 {
386 case BURN_PACKAGE_TYPE_MSI:
387 ReleaseStr(pCompatiblePackage->Msi.sczVersion);
388 ReleaseVerutilVersion(pCompatiblePackage->Msi.pVersion);
389 break;
390 }
391
392 // clear struct
393 memset(pCompatiblePackage, 0, sizeof(BURN_COMPATIBLE_PACKAGE));
369} 394}
370 395
371extern "C" void PackagesUninitialize( 396extern "C" void PackagesUninitialize(