diff options
Diffstat (limited to 'src/engine/package.cpp')
| -rw-r--r-- | src/engine/package.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/engine/package.cpp b/src/engine/package.cpp index 115866f3..124b356b 100644 --- a/src/engine/package.cpp +++ b/src/engine/package.cpp | |||
| @@ -377,6 +377,7 @@ extern "C" void PackagesUninitialize( | |||
| 377 | for (DWORD i = 0; i < pPackages->cRollbackBoundaries; ++i) | 377 | for (DWORD i = 0; i < pPackages->cRollbackBoundaries; ++i) |
| 378 | { | 378 | { |
| 379 | ReleaseStr(pPackages->rgRollbackBoundaries[i].sczId); | 379 | ReleaseStr(pPackages->rgRollbackBoundaries[i].sczId); |
| 380 | ReleaseStr(pPackages->rgRollbackBoundaries[i].sczLogPath); | ||
| 380 | } | 381 | } |
| 381 | MemFree(pPackages->rgRollbackBoundaries); | 382 | MemFree(pPackages->rgRollbackBoundaries); |
| 382 | } | 383 | } |
| @@ -511,6 +512,32 @@ LExit: | |||
| 511 | return hr; | 512 | return hr; |
| 512 | } | 513 | } |
| 513 | 514 | ||
| 515 | extern "C" HRESULT PackageFindRollbackBoundaryById( | ||
| 516 | __in BURN_PACKAGES* pPackages, | ||
| 517 | __in_z LPCWSTR wzId, | ||
| 518 | __out BURN_ROLLBACK_BOUNDARY** ppRollbackBoundary | ||
| 519 | ) | ||
| 520 | { | ||
| 521 | HRESULT hr = S_OK; | ||
| 522 | BURN_ROLLBACK_BOUNDARY* pRollbackBoundary = NULL; | ||
| 523 | |||
| 524 | for (DWORD i = 0; i < pPackages->cRollbackBoundaries; ++i) | ||
| 525 | { | ||
| 526 | pRollbackBoundary = &pPackages->rgRollbackBoundaries[i]; | ||
| 527 | |||
| 528 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pRollbackBoundary->sczId, -1, wzId, -1)) | ||
| 529 | { | ||
| 530 | *ppRollbackBoundary = pRollbackBoundary; | ||
| 531 | ExitFunction1(hr = S_OK); | ||
| 532 | } | ||
| 533 | } | ||
| 534 | |||
| 535 | hr = E_NOTFOUND; | ||
| 536 | |||
| 537 | LExit: | ||
| 538 | return hr; | ||
| 539 | } | ||
| 540 | |||
| 514 | 541 | ||
| 515 | // internal function declarations | 542 | // internal function declarations |
| 516 | 543 | ||
