[PATCH] D21946: Subject: [PATCH] [Driver] fix windows SDK detect
comicfans44 via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 1 16:44:13 PDT 2016
comicfans44 created this revision.
comicfans44 added reviewers: zturner, majnemer.
comicfans44 added a subscriber: cfe-commits.
1. readFullStringValue returns bool, should not compared with ERROR_SUCCESS
2. RegQueryValueExW string may contain null terminating char ,should be trimmed
these leads getSystemRegistryString return incorrect result, and following
getWindows10SDKVersion gives incorrect result for string append, prevents correct
SDK detected.
http://reviews.llvm.org/D21946
Files:
lib/Driver/MSVCToolChain.cpp
Index: lib/Driver/MSVCToolChain.cpp
===================================================================
--- lib/Driver/MSVCToolChain.cpp
+++ lib/Driver/MSVCToolChain.cpp
@@ -113,6 +113,9 @@
if (result == ERROR_SUCCESS) {
std::wstring WideValue(reinterpret_cast<const wchar_t *>(buffer.data()),
valueSize / sizeof(wchar_t));
+ if (valueSize && WideValue.back() == L'\0') {
+ WideValue.pop_back();
+ }
// The destination buffer must be empty as an invariant of the conversion
// function; but this function is sometimes called in a loop that passes in
// the same buffer, however. Simply clear it out so we can overwrite it.
@@ -190,8 +193,7 @@
lResult = RegOpenKeyExA(hTopKey, bestName.c_str(), 0,
KEY_READ | KEY_WOW64_32KEY, &hKey);
if (lResult == ERROR_SUCCESS) {
- lResult = readFullStringValue(hKey, valueName, value);
- if (lResult == ERROR_SUCCESS) {
+ if (readFullStringValue(hKey, valueName, value)) {
bestValue = dvalue;
if (phValue)
*phValue = bestName;
@@ -208,8 +210,7 @@
lResult =
RegOpenKeyExA(hRootKey, keyPath, 0, KEY_READ | KEY_WOW64_32KEY, &hKey);
if (lResult == ERROR_SUCCESS) {
- lResult = readFullStringValue(hKey, valueName, value);
- if (lResult == ERROR_SUCCESS)
+ if (readFullStringValue(hKey, valueName, value))
returnValue = true;
if (phValue)
phValue->clear();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21946.62570.patch
Type: text/x-patch
Size: 1548 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160701/6148bb36/attachment.bin>
More information about the cfe-commits
mailing list