From dc19ab8f7b3660d1f64f0a607e119306b50697c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Schu=CC=88mann?= Date: Wed, 31 Dec 2025 14:11:31 +0100 Subject: [PATCH] Avoid unnecessary temporary string creation in Windows directory iteration --- include/ghc/filesystem.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/ghc/filesystem.hpp b/include/ghc/filesystem.hpp index a14b88f..daf69e5 100644 --- a/include/ghc/filesystem.hpp +++ b/include/ghc/filesystem.hpp @@ -5594,7 +5594,8 @@ public: if (!_base.empty()) { ZeroMemory(&_findData, sizeof(WIN32_FIND_DATAW)); 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); } else { @@ -5652,7 +5653,7 @@ public: _dir_entry._path.clear(); break; } - } while (std::wstring(_findData.cFileName) == L"." || std::wstring(_findData.cFileName) == L".."); + } while (wcscmp(_findData.cFileName, L".") == 0 || wcscmp(_findData.cFileName, L"..") == 0); } else { ec = _ec;