Avoid unnecessary temporary string creation in Windows directory iteration

This commit is contained in:
Steffen Schümann 2025-12-31 14:11:31 +01:00
parent 0eef0ffea4
commit dc19ab8f7b

View File

@ -5594,7 +5594,8 @@ public:
if (!_base.empty()) { if (!_base.empty()) {
ZeroMemory(&_findData, sizeof(WIN32_FIND_DATAW)); ZeroMemory(&_findData, sizeof(WIN32_FIND_DATAW));
if ((_dirHandle = FindFirstFileW(GHC_NATIVEWP((_base / "*")), &_findData)) != INVALID_HANDLE_VALUE) { if ((_dirHandle = FindFirstFileW(GHC_NATIVEWP((_base / "*")), &_findData)) != INVALID_HANDLE_VALUE) {
if (std::wstring(_findData.cFileName) == L"." || std::wstring(_findData.cFileName) == L"..") { if (wcscmp(_findData.cFileName, L".") == 0 ||
wcscmp(_findData.cFileName, L"..") == 0) {
increment(_ec); increment(_ec);
} }
else { else {
@ -5652,7 +5653,7 @@ public:
_dir_entry._path.clear(); _dir_entry._path.clear();
break; break;
} }
} while (std::wstring(_findData.cFileName) == L"." || std::wstring(_findData.cFileName) == L".."); } while (wcscmp(_findData.cFileName, L".") == 0 || wcscmp(_findData.cFileName, L"..") == 0);
} }
else { else {
ec = _ec; ec = _ec;