aboutsummaryrefslogtreecommitdiff
path: root/src/engine/package.cpp
diff options
context:
space:
mode:
authorNir Bar <nir.bar@panel-sw.co.il>2021-03-17 14:45:03 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-03-17 14:49:24 -0500
commitb7582318f6cb6e166f5ca22128caea2a97551a1f (patch)
treef92071000dd33376e6b982b52ed2172278ef4035 /src/engine/package.cpp
parentaf68033509730ffe01602f839861a47287bb709f (diff)
downloadwix-b7582318f6cb6e166f5ca22128caea2a97551a1f.tar.gz
wix-b7582318f6cb6e166f5ca22128caea2a97551a1f.tar.bz2
wix-b7582318f6cb6e166f5ca22128caea2a97551a1f.zip
Use wiutil to start/end msi transactions
Release MSI transaction handles immediately contributes to #5386
Diffstat (limited to 'src/engine/package.cpp')
-rw-r--r--src/engine/package.cpp27
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
515extern "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
537LExit:
538 return hr;
539}
540
514 541
515// internal function declarations 542// internal function declarations
516 543