From da1d1376953ef1c9afb32d5eee02b785e52e372e Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 14 Jan 2022 21:37:24 -0600 Subject: Remove orphan compatible MSI packages. Reimplements #3190 --- src/burn/engine/package.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/burn/engine/package.cpp') 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( MsuEnginePackageUninitialize(pPackage); // TODO: Modularization break; } + + PackageUninitializeCompatible(&pPackage->compatiblePackage); +} + +extern "C" void PackageUninitializeCompatible( + __in BURN_COMPATIBLE_PACKAGE* pCompatiblePackage + ) +{ + ReleaseStr(pCompatiblePackage->compatibleEntry.sczId); + ReleaseStr(pCompatiblePackage->compatibleEntry.sczName); + ReleaseStr(pCompatiblePackage->compatibleEntry.sczProviderKey); + ReleaseStr(pCompatiblePackage->compatibleEntry.sczVersion); + + ReleaseStr(pCompatiblePackage->sczCacheId); + + switch (pCompatiblePackage->type) + { + case BURN_PACKAGE_TYPE_MSI: + ReleaseStr(pCompatiblePackage->Msi.sczVersion); + ReleaseVerutilVersion(pCompatiblePackage->Msi.pVersion); + break; + } + + // clear struct + memset(pCompatiblePackage, 0, sizeof(BURN_COMPATIBLE_PACKAGE)); } extern "C" void PackagesUninitialize( -- cgit v1.2.3-55-g6feb