diff options
author | Vladimir Penev <vovata@gmail.com> | 2018-11-01 11:21:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-11-01 11:25:17 (GMT) |
commit | eb52529ff41d375344c2bd45a717bf86669627f8 (patch) | |
tree | 87c24b560947ddb42ff9ed96ee33e3b2feae6bf3 /Source/cmFileMonitor.cxx | |
parent | 3e5548784da085ee3a5ce3f7213c0cf281b68f31 (diff) | |
download | CMake-eb52529ff41d375344c2bd45a717bf86669627f8.zip CMake-eb52529ff41d375344c2bd45a717bf86669627f8.tar.gz CMake-eb52529ff41d375344c2bd45a717bf86669627f8.tar.bz2 |
server: Fix assertion failure on directory paths in file monitor
Fixes: #18532
Diffstat (limited to 'Source/cmFileMonitor.cxx')
-rw-r--r-- | Source/cmFileMonitor.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/cmFileMonitor.cxx b/Source/cmFileMonitor.cxx index 04a3c0e..b36ac78 100644 --- a/Source/cmFileMonitor.cxx +++ b/Source/cmFileMonitor.cxx @@ -315,6 +315,7 @@ void cmFileMonitor::MonitorPaths(const std::vector<std::string>& paths, for (std::string const& p : paths) { std::vector<std::string> pathSegments; cmsys::SystemTools::SplitPath(p, pathSegments, true); + const bool pathIsFile = !cmsys::SystemTools::FileIsDirectory(p); const size_t segmentCount = pathSegments.size(); if (segmentCount < 2) { // Expect at least rootdir and filename @@ -324,7 +325,7 @@ void cmFileMonitor::MonitorPaths(const std::vector<std::string>& paths, for (size_t i = 0; i < segmentCount; ++i) { assert(currentWatcher); - const bool fileSegment = (i == segmentCount - 1); + const bool fileSegment = (i == segmentCount - 1 && pathIsFile); const bool rootSegment = (i == 0); assert( !(fileSegment && |