summaryrefslogtreecommitdiff
path: root/src/burn/engine/elevation.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-03-13 23:45:32 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-03-14 14:53:29 -0500
commit4cd1c4e06145434ca940ac828772dc47b9d9738e (patch)
treea754d685039173c63303dc6d0d8b1a2bf3ab506b /src/burn/engine/elevation.cpp
parent89adb2e3cc232b11b28e5bdeccb0c522c8124a29 (diff)
downloadwix-4cd1c4e06145434ca940ac828772dc47b9d9738e.tar.gz
wix-4cd1c4e06145434ca940ac828772dc47b9d9738e.tar.bz2
wix-4cd1c4e06145434ca940ac828772dc47b9d9738e.zip
Allow the BA to override the bundle relation type during plan.
Diffstat (limited to 'src/burn/engine/elevation.cpp')
-rw-r--r--src/burn/engine/elevation.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/burn/engine/elevation.cpp b/src/burn/engine/elevation.cpp
index e479b6c0..636d67ce 100644
--- a/src/burn/engine/elevation.cpp
+++ b/src/burn/engine/elevation.cpp
@@ -874,6 +874,9 @@ extern "C" HRESULT ElevationExecuteRelatedBundle(
874 hr = BuffWriteNumber(&pbData, &cbData, (DWORD)pExecuteAction->relatedBundle.action); 874 hr = BuffWriteNumber(&pbData, &cbData, (DWORD)pExecuteAction->relatedBundle.action);
875 ExitOnFailure(hr, "Failed to write action to message buffer."); 875 ExitOnFailure(hr, "Failed to write action to message buffer.");
876 876
877 hr = BuffWriteNumber(&pbData, &cbData, (DWORD)pExecuteAction->relatedBundle.pRelatedBundle->planRelationType);
878 ExitOnFailure(hr, "Failed to write planRelationType to message buffer.");
879
877 hr = BuffWriteNumber(&pbData, &cbData, fRollback); 880 hr = BuffWriteNumber(&pbData, &cbData, fRollback);
878 ExitOnFailure(hr, "Failed to write rollback."); 881 ExitOnFailure(hr, "Failed to write rollback.");
879 882
@@ -2723,6 +2726,7 @@ static HRESULT OnExecuteRelatedBundle(
2723 HRESULT hr = S_OK; 2726 HRESULT hr = S_OK;
2724 SIZE_T iData = 0; 2727 SIZE_T iData = 0;
2725 LPWSTR sczPackage = NULL; 2728 LPWSTR sczPackage = NULL;
2729 DWORD dwPlanRelationType = 0;
2726 DWORD dwRollback = 0; 2730 DWORD dwRollback = 0;
2727 BURN_EXECUTE_ACTION executeAction = { }; 2731 BURN_EXECUTE_ACTION executeAction = { };
2728 LPWSTR sczIgnoreDependencies = NULL; 2732 LPWSTR sczIgnoreDependencies = NULL;
@@ -2739,6 +2743,9 @@ static HRESULT OnExecuteRelatedBundle(
2739 hr = BuffReadNumber(pbData, cbData, &iData, (DWORD*)&executeAction.relatedBundle.action); 2743 hr = BuffReadNumber(pbData, cbData, &iData, (DWORD*)&executeAction.relatedBundle.action);
2740 ExitOnFailure(hr, "Failed to read action."); 2744 ExitOnFailure(hr, "Failed to read action.");
2741 2745
2746 hr = BuffReadNumber(pbData, cbData, &iData, &dwPlanRelationType);
2747 ExitOnFailure(hr, "Failed to read planRelationType.");
2748
2742 hr = BuffReadNumber(pbData, cbData, &iData, &dwRollback); 2749 hr = BuffReadNumber(pbData, cbData, &iData, &dwRollback);
2743 ExitOnFailure(hr, "Failed to read rollback."); 2750 ExitOnFailure(hr, "Failed to read rollback.");
2744 2751
@@ -2757,6 +2764,8 @@ static HRESULT OnExecuteRelatedBundle(
2757 hr = RelatedBundleFindById(pRelatedBundles, sczPackage, &executeAction.relatedBundle.pRelatedBundle); 2764 hr = RelatedBundleFindById(pRelatedBundles, sczPackage, &executeAction.relatedBundle.pRelatedBundle);
2758 ExitOnFailure(hr, "Failed to find related bundle: %ls", sczPackage); 2765 ExitOnFailure(hr, "Failed to find related bundle: %ls", sczPackage);
2759 2766
2767 executeAction.relatedBundle.pRelatedBundle->planRelationType = (BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE)dwPlanRelationType;
2768
2760 // Pass the list of dependencies to ignore, if any, to the related bundle. 2769 // Pass the list of dependencies to ignore, if any, to the related bundle.
2761 if (sczIgnoreDependencies && *sczIgnoreDependencies) 2770 if (sczIgnoreDependencies && *sczIgnoreDependencies)
2762 { 2771 {