Skip to content

Commit

Permalink
os_info_windows.cpp : small optimization - VARIANT val should be init…
Browse files Browse the repository at this point in the history
…ialized, VC++ compiler warning on val_destructor() because of uninitialized inout param. - In WMI query get Capture, not Name. No need to find & resize string.
  • Loading branch information
pavel_a authored and nabijaczleweli committed Sep 6, 2024
1 parent 392c212 commit 3cb895c
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions src/system/OS_info/os_info_windows.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ static std::string version_name() {

IEnumWbemClassObject* query_iterator_raw;
wchar_t query_lang[] = L"WQL";
wchar_t query[] = L"SELECT Name FROM Win32_OperatingSystem";
wchar_t query[] = L"SELECT Caption FROM Win32_OperatingSystem";
if(FAILED(wbem_services->ExecQuery(query_lang, query, WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, nullptr, &query_iterator_raw)))
return {};
std::unique_ptr<IEnumWbemClassObject, iware::detail::release_deleter> query_iterator(query_iterator_raw);
Expand All @@ -70,15 +70,13 @@ static std::string version_name() {
std::unique_ptr<IWbemClassObject, iware::detail::release_deleter> value(value_raw);

VARIANT val;
value->Get(L"Name", 0, &val, 0, 0);
VariantInit(&val);
value->Get(L"Caption", 0, &val, 0, 0);
iware::detail::quickscope_wrapper val_destructor{[&] { VariantClear(&val); }};

ret = iware::detail::narrowen_bstring(val.bstrVal);
}

const auto sep = ret.find('|');
if(sep != std::string::npos)
ret.resize(sep);
return ret;
}

Expand Down

0 comments on commit 3cb895c

Please sign in to comment.