aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/package.cpp
diff options
context:
space:
mode:
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(