diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-02-01 20:36:39 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-02-04 22:16:10 -0600 |
commit | cc5fe7c79aad14819df1b4cb134884b80a945141 (patch) | |
tree | 4b0ab44744a6b989f784292d438ef0654d9b03ac /src/engine/detect.cpp | |
parent | cede270b2bd3da6bd8d5205b8834e786c8d6c1ce (diff) | |
download | wix-cc5fe7c79aad14819df1b4cb134884b80a945141.tar.gz wix-cc5fe7c79aad14819df1b4cb134884b80a945141.tar.bz2 wix-cc5fe7c79aad14819df1b4cb134884b80a945141.zip |
Move registry checks for dependency ref-counting into Detect.
Diffstat (limited to 'src/engine/detect.cpp')
-rw-r--r-- | src/engine/detect.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/engine/detect.cpp b/src/engine/detect.cpp index 63e66539..3b8d63e2 100644 --- a/src/engine/detect.cpp +++ b/src/engine/detect.cpp | |||
@@ -41,12 +41,28 @@ extern "C" void DetectReset( | |||
41 | ReleaseNullStr(pRegistration->sczDetectedProviderKeyBundleId); | 41 | ReleaseNullStr(pRegistration->sczDetectedProviderKeyBundleId); |
42 | pRegistration->fEnabledForwardCompatibleBundle = FALSE; | 42 | pRegistration->fEnabledForwardCompatibleBundle = FALSE; |
43 | PackageUninitialize(&pRegistration->forwardCompatibleBundle); | 43 | PackageUninitialize(&pRegistration->forwardCompatibleBundle); |
44 | pRegistration->fSelfRegisteredAsDependent = FALSE; | ||
45 | |||
46 | if (pRegistration->rgIgnoredDependencies) | ||
47 | { | ||
48 | ReleaseDependencyArray(pRegistration->rgIgnoredDependencies, pRegistration->cIgnoredDependencies); | ||
49 | } | ||
50 | pRegistration->rgIgnoredDependencies = NULL; | ||
51 | pRegistration->cIgnoredDependencies = 0; | ||
52 | |||
53 | if (pRegistration->rgDependents) | ||
54 | { | ||
55 | ReleaseDependencyArray(pRegistration->rgDependents, pRegistration->cDependents); | ||
56 | } | ||
57 | pRegistration->rgDependents = NULL; | ||
58 | pRegistration->cDependents = 0; | ||
44 | 59 | ||
45 | for (DWORD iPackage = 0; iPackage < pPackages->cPackages; ++iPackage) | 60 | for (DWORD iPackage = 0; iPackage < pPackages->cPackages; ++iPackage) |
46 | { | 61 | { |
47 | BURN_PACKAGE* pPackage = pPackages->rgPackages + iPackage; | 62 | BURN_PACKAGE* pPackage = pPackages->rgPackages + iPackage; |
48 | 63 | ||
49 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; | 64 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN; |
65 | pPackage->fPackageProviderExists = FALSE; | ||
50 | 66 | ||
51 | pPackage->cache = BURN_CACHE_STATE_NONE; | 67 | pPackage->cache = BURN_CACHE_STATE_NONE; |
52 | for (DWORD iPayload = 0; iPayload < pPackage->cPayloads; ++iPayload) | 68 | for (DWORD iPayload = 0; iPayload < pPackage->cPayloads; ++iPayload) |
@@ -69,6 +85,18 @@ extern "C" void DetectReset( | |||
69 | ReleaseNullMem(pPackage->Msp.rgTargetProducts); | 85 | ReleaseNullMem(pPackage->Msp.rgTargetProducts); |
70 | pPackage->Msp.cTargetProductCodes = 0; | 86 | pPackage->Msp.cTargetProductCodes = 0; |
71 | } | 87 | } |
88 | |||
89 | for (DWORD iProvider = 0; iProvider < pPackage->cDependencyProviders; ++iProvider) | ||
90 | { | ||
91 | BURN_DEPENDENCY_PROVIDER* pProvider = pPackage->rgDependencyProviders + iProvider; | ||
92 | |||
93 | if (pProvider->rgDependents) | ||
94 | { | ||
95 | ReleaseDependencyArray(pProvider->rgDependents, pProvider->cDependents); | ||
96 | } | ||
97 | pProvider->rgDependents = NULL; | ||
98 | pProvider->cDependents = 0; | ||
99 | } | ||
72 | } | 100 | } |
73 | 101 | ||
74 | for (DWORD iPatchInfo = 0; iPatchInfo < pPackages->cPatchInfo; ++iPatchInfo) | 102 | for (DWORD iPatchInfo = 0; iPatchInfo < pPackages->cPatchInfo; ++iPatchInfo) |