summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2018-07-23 04:55:57 +0000
committerEric Fiselier <eric@efcs.ca>2018-07-23 04:55:57 +0000
commit04ce4aef00d3ee508327f6cf7bf1b1d200ab6238 (patch)
tree72d47a22a941aac2347a4070fe06831ca3a7940e
parent24acfd881a8f0573f6f5a1e2c2617beb6d0be974 (diff)
Use possibly cached directory entry values when performing recursive directory iteration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@337669 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--src/experimental/filesystem/directory_iterator.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/experimental/filesystem/directory_iterator.cpp b/src/experimental/filesystem/directory_iterator.cpp
index 60f234cb1..b49ea398f 100644
--- a/src/experimental/filesystem/directory_iterator.cpp
+++ b/src/experimental/filesystem/directory_iterator.cpp
@@ -359,13 +359,13 @@ bool recursive_directory_iterator::__try_recursion(error_code *ec) {
bool skip_rec = false;
std::error_code m_ec;
if (!rec_sym) {
- file_status st = curr_it.__entry_.symlink_status(m_ec);
+ file_status st(curr_it.__entry_.__get_sym_ft(&m_ec));
if (m_ec && status_known(st))
m_ec.clear();
if (m_ec || is_symlink(st) || !is_directory(st))
skip_rec = true;
} else {
- file_status st = curr_it.__entry_.status(m_ec);
+ file_status st(curr_it.__entry_.__get_ft(&m_ec));
if (m_ec && status_known(st))
m_ec.clear();
if (m_ec || !is_directory(st))