From 949e46642a1b528a0bbe0d66860dd6ab0b07dbb1 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 23 Oct 2024 09:17:06 +0200 Subject: [PATCH] util: use std::array --- src/uvw/util.h | 6 +++--- src/uvw/util.ipp | 15 +++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/uvw/util.h b/src/uvw/util.h index 56ffee5c..d66cb377 100644 --- a/src/uvw/util.h +++ b/src/uvw/util.h @@ -252,9 +252,9 @@ static constexpr std::size_t DEFAULT_SIZE = 128; template [[nodiscard]] std::string try_read(F &&f, Args &&...args) { std::size_t size = DEFAULT_SIZE; - char buf[DEFAULT_SIZE]; + std::array buf{}; std::string str{}; - auto err = std::forward(f)(args..., buf, &size); + auto err = std::forward(f)(args..., buf.data(), &size); if(UV_ENOBUFS == err) { auto data = std::make_unique(size); @@ -264,7 +264,7 @@ template str = data.get(); } } else if(0 == err) { - str.assign(buf, size); + str.assign(buf.data(), size); } return str; diff --git a/src/uvw/util.ipp b/src/uvw/util.ipp index e71a6aa6..22b5b087 100644 --- a/src/uvw/util.ipp +++ b/src/uvw/util.ipp @@ -69,16 +69,16 @@ UVW_INLINE sockaddr ip_addr(const char *addr, unsigned int port) { } UVW_INLINE socket_address sock_addr(const sockaddr_in &addr) { - if(char name[details::DEFAULT_SIZE]; uv_ip4_name(&addr, name, details::DEFAULT_SIZE) == 0) { - return socket_address{std::string{name}, ntohs(addr.sin_port)}; + if(std::array name{}; uv_ip4_name(&addr, name.data(), details::DEFAULT_SIZE) == 0) { + return socket_address{std::string{name.data()}, ntohs(addr.sin_port)}; } return socket_address{}; } UVW_INLINE socket_address sock_addr(const sockaddr_in6 &addr) { - if(char name[details::DEFAULT_SIZE]; uv_ip6_name(&addr, name, details::DEFAULT_SIZE) == 0) { - return socket_address{std::string{name}, ntohs(addr.sin6_port)}; + if(std::array name{}; uv_ip6_name(&addr, name.data(), details::DEFAULT_SIZE) == 0) { + return socket_address{std::string{name.data()}, ntohs(addr.sin6_port)}; } return socket_address{}; @@ -282,12 +282,11 @@ UVW_INLINE char **utilities::setup_args(int argc, char **argv) { } UVW_INLINE std::string utilities::process_title() { - std::size_t size = details::DEFAULT_SIZE; - char buf[details::DEFAULT_SIZE]; + std::array buf{}; std::string str{}; - if(0 == uv_get_process_title(buf, size)) { - str.assign(buf, size); + if(0 == uv_get_process_title(buf.data(), details::DEFAULT_SIZE)) { + str.assign(buf.data(), details::DEFAULT_SIZE); } return str;