summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2022-01-20 09:58:31 (GMT)
committerGitHub <noreply@github.com>2022-01-20 09:58:31 (GMT)
commit7c2df31839302177b809fd5de33aa7727432d26f (patch)
tree07ec24130187ce21a8d135dac63dda84512ac28e
parente234b25bb51a4d3ce5376febb4ad9a11e77d5ca3 (diff)
parent97b4008aa788116683bb752d7c79b44128c2c485 (diff)
downloadNinja-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.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;