From 87efe5f206fe138a1e88238153212c5cbac401cd Mon Sep 17 00:00:00 2001 From: Pietro Cerutti Date: Tue, 11 Apr 2017 10:53:40 +0000 Subject: DirName's separators and their length are known at compile time --- src/disk_interface.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/disk_interface.cc b/src/disk_interface.cc index 1b4135f..40796ed 100644 --- a/src/disk_interface.cc +++ b/src/disk_interface.cc @@ -34,14 +34,15 @@ namespace { string DirName(const string& path) { #ifdef _WIN32 - const char kPathSeparators[] = "\\/"; + static const char kPathSeparators[] = "\\/"; #else - const char kPathSeparators[] = "/"; + static const char kPathSeparators[] = "/"; #endif + static const char* const kEnd = kPathSeparators + sizeof(kPathSeparators) - 1; + string::size_type slash_pos = path.find_last_of(kPathSeparators); if (slash_pos == string::npos) return string(); // Nothing to do. - const char* const kEnd = kPathSeparators + strlen(kPathSeparators); while (slash_pos > 0 && std::find(kPathSeparators, kEnd, path[slash_pos - 1]) != kEnd) --slash_pos; -- cgit v0.12