diff options
Diffstat (limited to 'src/burn/engine/package.cpp')
-rw-r--r-- | src/burn/engine/package.cpp | 25 |
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 | |||
373 | extern "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 | ||
371 | extern "C" void PackagesUninitialize( | 396 | extern "C" void PackagesUninitialize( |