diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2022-01-20 09:58:31 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-20 09:58:31 (GMT) |
commit | 7c2df31839302177b809fd5de33aa7727432d26f (patch) | |
tree | 07ec24130187ce21a8d135dac63dda84512ac28e | |
parent | e234b25bb51a4d3ce5376febb4ad9a11e77d5ca3 (diff) | |
parent | 97b4008aa788116683bb752d7c79b44128c2c485 (diff) | |
download | Ninja-7c2df31839302177b809fd5de33aa7727432d26f.zip Ninja-7c2df31839302177b809fd5de33aa7727432d26f.tar.gz Ninja-7c2df31839302177b809fd5de33aa7727432d26f.tar.bz2 |
Merge pull request #1901 from MartinBP/windows_case_sensitive_folders
disk_interface: Improve the stat cache handling for case sensitive folders on Windows
-rw-r--r-- | src/disk_interface.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/disk_interface.cc b/src/disk_interface.cc index a37c570..e73d901 100644 --- a/src/disk_interface.cc +++ b/src/disk_interface.cc @@ -180,12 +180,13 @@ TimeStamp RealDiskInterface::Stat(const string& path, string* err) const { dir = path; } - transform(dir.begin(), dir.end(), dir.begin(), ::tolower); + string dir_lowercase = dir; + transform(dir.begin(), dir.end(), dir_lowercase.begin(), ::tolower); transform(base.begin(), base.end(), base.begin(), ::tolower); - Cache::iterator ci = cache_.find(dir); + Cache::iterator ci = cache_.find(dir_lowercase); if (ci == cache_.end()) { - ci = cache_.insert(make_pair(dir, DirCache())).first; + ci = cache_.insert(make_pair(dir_lowercase, DirCache())).first; if (!StatAllFilesInDir(dir.empty() ? "." : dir, &ci->second, err)) { cache_.erase(ci); return -1; |