summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2022-01-20 10:58:31 +0100
committerGitHub <noreply@github.com>2022-01-20 10:58:31 +0100
commit7c2df31839302177b809fd5de33aa7727432d26f (patch)
tree07ec24130187ce21a8d135dac63dda84512ac28e
parente234b25bb51a4d3ce5376febb4ad9a11e77d5ca3 (diff)
parent97b4008aa788116683bb752d7c79b44128c2c485 (diff)
downloadninja-7c2df31839302177b809fd5de33aa7727432d26f.tar.gz
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.cc7
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;