diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2015-12-09 23:01:53 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2015-12-10 11:06:37 +0000 |
commit | d7b5d78ecc1b4d9dc6859f273d46847b1f2fe36d (patch) | |
tree | 540017774789535a312f863b6148d8c878ecee88 /src/serialport/qserialportinfo_win.cpp | |
parent | d0da1f79fd8e7215cab9bc927d96c817827ddb41 (diff) |
Use C-style tokens array for query of device name from registry
... because QStringList it is an overhead in there.
Change-Id: Ic5da6243348ee1a934ae2c91707de71fa7e96825
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src/serialport/qserialportinfo_win.cpp')
-rw-r--r-- | src/serialport/qserialportinfo_win.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/serialport/qserialportinfo_win.cpp b/src/serialport/qserialportinfo_win.cpp index 8a47e226..63cf642e 100644 --- a/src/serialport/qserialportinfo_win.cpp +++ b/src/serialport/qserialportinfo_win.cpp @@ -147,17 +147,20 @@ static QString devicePortName(HDEVINFO deviceInfoSet, PSP_DEVINFO_DATA deviceInf if (key == INVALID_HANDLE_VALUE) return QString(); - static const QStringList portNameRegistryKeyList = QStringList() - << QStringLiteral("PortName") - << QStringLiteral("PortNumber"); + static const wchar_t * const keyTokens[] = { + L"PortName\0", + L"PortNumber\0" + }; + + static const int keyTokensCount = sizeof(keyTokens) / sizeof(keyTokens[0]); QString portName; - foreach (const QString &portNameKey, portNameRegistryKeyList) { + for (int i = 0; i < keyTokensCount; ++i) { DWORD dataType = 0; std::vector<wchar_t> outputBuffer(MAX_PATH + 1, 0); DWORD bytesRequired = MAX_PATH; forever { - const LONG ret = ::RegQueryValueEx(key, reinterpret_cast<const wchar_t *>(portNameKey.utf16()), Q_NULLPTR, &dataType, + const LONG ret = ::RegQueryValueEx(key, keyTokens[i], Q_NULLPTR, &dataType, reinterpret_cast<PBYTE>(&outputBuffer[0]), &bytesRequired); if (ret == ERROR_MORE_DATA) { outputBuffer.resize(bytesRequired / sizeof(wchar_t) + 2, 0); |