From e18ecc3fa51f77d9cbaf6275f1cf9426f53c9aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Tue, 10 Jan 2023 11:49:39 +0100 Subject: [PATCH] ModFile::remove_directory_with_matlab_lock(): minor performance improvement Use std::filesystem::file_status and cached directory entries information to avoid extra filesystem operations. --- src/ModFile.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ModFile.cc b/src/ModFile.cc index 925694d2..4e7c175f 100644 --- a/src/ModFile.cc +++ b/src/ModFile.cc @@ -761,12 +761,13 @@ ModFile::computingPass(bool no_tmp_terms, OutputType output, int params_derivs_o void ModFile::remove_directory_with_matlab_lock(const filesystem::path &dir) { - if (!exists(dir)) + auto dirStatus {status(dir)}; + if (!exists(dirStatus)) return; - if (is_directory(dir)) + if (is_directory(dirStatus)) for (const auto &e : filesystem::directory_iterator{dir}) - if (is_directory(e)) + if (e.is_directory()) remove_directory_with_matlab_lock(e); auto tmp {unique_path()}; -- GitLab