aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
diff options
context:
space:
mode:
authorhalyavin <halyavin@yandex-team.com>2023-09-26 11:14:38 +0300
committerhalyavin <halyavin@yandex-team.com>2023-09-26 11:42:52 +0300
commit7fcf8b470c7f4b97acf6f2833afa770c1372f231 (patch)
treec7583ae7054d92eb5788c03760b6b9c50f7cc6c6 /contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
parent4c226ec97b09cd6fc38f8a0bbe57f52d384abe3f (diff)
downloadydb-7fcf8b470c7f4b97acf6f2833afa770c1372f231.tar.gz
Update libc++ to 9b03c08e (6 Mar 2022).
Notable changes: * don't warn that coroutines are not supported when using experimental/coroutine * add _LIBCPP_HIDE_FROM_ABI to __quoted_proxy constructors * ADL-proof calls of __quoted * fix ctype facet `is` method for Windows * change return type of bit_width to int (LWG3656) * make private __wrap_iter constructors explicit * fix delayed initialization of `__fill_` in basic_ios * ranges::iter_move cleanup * ADL-proof __synth_three_way * reject random number generators with signed types * use C++ overloads from math.h on AIX * add explicit to some internal constructors * replace _LIBCPP_HAS_NO_STRONG_ENUMS with C++ version check * use `inline constexpr bool` instead of `constexpr bool` for helpers in ranges * reject uniform_int_distribution<bool>, uniform_int_distribution<char> and all user types * allow std::mergeable and std::sortable even with incomplete ranges * fix double close bug in std::filesystem::remove_all * remove recursion in basic_string::insert because it interferes with constexpr * fix error checking of wctob_l calls * pack _Flags class on AIX * fix integer type in __estimate_column_width exposed by AIX * qualify all std::move calls with std * make chrono includes granular * set std::numeric_limits::tinyness_before to true on ARM * add ranges::in_found_result and ranges::min_max_result
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp')
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
index 9e0abc83b1..82d321942a 100644
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
@@ -1420,12 +1420,14 @@ uintmax_t remove_all_impl(int parent_directory, const path& p, error_code& ec) {
if (fd != -1) {
// If that worked, iterate over the contents of the directory and
// remove everything in it, recursively.
- scope_exit close_fd([=] { ::close(fd); });
DIR* stream = ::fdopendir(fd);
if (stream == nullptr) {
+ ::close(fd);
ec = detail::capture_errno();
return 0;
}
+ // Note: `::closedir` will also close the associated file descriptor, so
+ // there should be no call to `close(fd)`.
scope_exit close_stream([=] { ::closedir(stream); });
uintmax_t count = 0;