aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/monutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/monutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/monutil.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/monutil.cpp b/src/libs/dutil/WixToolset.DUtil/monutil.cpp
index 10954164..d7bcfa52 100644
--- a/src/libs/dutil/WixToolset.DUtil/monutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/monutil.cpp
@@ -17,6 +17,7 @@
17#define MonExitOnWin32Error(e, x, s, ...) ExitOnWin32ErrorSource(DUTIL_SOURCE_MONUTIL, e, x, s, __VA_ARGS__) 17#define MonExitOnWin32Error(e, x, s, ...) ExitOnWin32ErrorSource(DUTIL_SOURCE_MONUTIL, e, x, s, __VA_ARGS__)
18#define MonExitOnGdipFailure(g, x, s, ...) ExitOnGdipFailureSource(DUTIL_SOURCE_MONUTIL, g, x, s, __VA_ARGS__) 18#define MonExitOnGdipFailure(g, x, s, ...) ExitOnGdipFailureSource(DUTIL_SOURCE_MONUTIL, g, x, s, __VA_ARGS__)
19#define MonExitOnWaitObjectFailure(x, b, s, ...) ExitOnWaitObjectFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__) 19#define MonExitOnWaitObjectFailure(x, b, s, ...) ExitOnWaitObjectFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__)
20#define MonExitOnPathFailure(x, b, s, ...) ExitOnPathFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__)
20 21
21const int MON_THREAD_GROWTH = 5; 22const int MON_THREAD_GROWTH = 5;
22const int MON_ARRAY_GROWTH = 40; 23const int MON_ARRAY_GROWTH = 40;
@@ -982,6 +983,7 @@ static HRESULT InitiateWait(
982 DWORD dwIndex = 0; 983 DWORD dwIndex = 0;
983 HKEY hk = NULL; 984 HKEY hk = NULL;
984 HANDLE hTemp = INVALID_HANDLE_VALUE; 985 HANDLE hTemp = INVALID_HANDLE_VALUE;
986 BOOL fExists = FALSE;
985 987
986 if (pRequest->hNotify) 988 if (pRequest->hNotify)
987 { 989 {
@@ -1025,11 +1027,12 @@ static HRESULT InitiateWait(
1025 case MON_REGKEY: 1027 case MON_REGKEY:
1026 ReleaseRegKey(pRequest->regkey.hkSubKey); 1028 ReleaseRegKey(pRequest->regkey.hkSubKey);
1027 hr = RegOpen(pRequest->regkey.hkRoot, pRequest->rgsczPathHierarchy[dwIndex], KEY_NOTIFY | GetRegKeyBitness(pRequest), &pRequest->regkey.hkSubKey); 1029 hr = RegOpen(pRequest->regkey.hkRoot, pRequest->rgsczPathHierarchy[dwIndex], KEY_NOTIFY | GetRegKeyBitness(pRequest), &pRequest->regkey.hkSubKey);
1028 if (E_FILENOTFOUND == hr || E_PATHNOTFOUND == hr) 1030 MonExitOnPathFailure(hr, fExists, "Failed to open regkey %ls", pRequest->rgsczPathHierarchy[dwIndex]);
1031
1032 if (!fExists)
1029 { 1033 {
1030 continue; 1034 continue;
1031 } 1035 }
1032 MonExitOnFailure(hr, "Failed to open regkey %ls", pRequest->rgsczPathHierarchy[dwIndex]);
1033 1036
1034 er = ::RegNotifyChangeKeyValue(pRequest->regkey.hkSubKey, GetRecursiveFlag(pRequest, dwIndex), REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY, *pHandle, TRUE); 1037 er = ::RegNotifyChangeKeyValue(pRequest->regkey.hkSubKey, GetRecursiveFlag(pRequest, dwIndex), REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY, *pHandle, TRUE);
1035 ReleaseRegKey(hk); 1038 ReleaseRegKey(hk);
@@ -1038,12 +1041,9 @@ static HRESULT InitiateWait(
1038 { 1041 {
1039 continue; 1042 continue;
1040 } 1043 }
1041 else 1044 MonExitOnFailure(hr, "Failed to wait on subkey %ls", pRequest->rgsczPathHierarchy[dwIndex]);
1042 {
1043 MonExitOnWin32Error(er, hr, "Failed to wait on subkey %ls", pRequest->rgsczPathHierarchy[dwIndex]);
1044 1045
1045 fHandleFound = TRUE; 1046 fHandleFound = TRUE;
1046 }
1047 1047
1048 break; 1048 break;
1049 default: 1049 default: