From e774913db9227820562f3a656a3184bc2b345ed3 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 23 Oct 2024 09:28:51 +0200 Subject: [PATCH] *: perf improvements --- src/uvw/dns.h | 4 ++-- src/uvw/dns.ipp | 6 +++--- src/uvw/fs_event.ipp | 3 +-- src/uvw/fs_poll.ipp | 3 +-- src/uvw/poll.ipp | 2 +- src/uvw/process.h | 2 +- src/uvw/process.ipp | 2 +- src/uvw/tcp.h | 4 ++-- src/uvw/tcp.ipp | 4 ++-- src/uvw/udp.h | 12 ++++++------ src/uvw/udp.ipp | 12 ++++++------ src/uvw/work.ipp | 2 +- test/uvw/thread.cpp | 2 +- 13 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/uvw/dns.h b/src/uvw/dns.h index f82af0c0..52520dbb 100644 --- a/src/uvw/dns.h +++ b/src/uvw/dns.h @@ -171,7 +171,7 @@ public: * @param flags Optional flags that modify the behavior of `getnameinfo`. * @return Underlying return value. */ - int name_info(socket_address addr, int flags = 0); + int name_info(const socket_address &addr, int flags = 0); /** * @brief Sync [getnameinfo](http://linux.die.net/man/3/getnameinfo). @@ -214,7 +214,7 @@ public: * * A `const char *` containing a valid hostname. * * A `const char *` containing a valid service name. */ - std::pair> name_info_sync(socket_address addr, int flags = 0); + std::pair> name_info_sync(const socket_address &addr, int flags = 0); }; } // namespace uvw diff --git a/src/uvw/dns.ipp b/src/uvw/dns.ipp index 1397e150..10418e1f 100644 --- a/src/uvw/dns.ipp +++ b/src/uvw/dns.ipp @@ -68,8 +68,8 @@ UVW_INLINE int get_name_info_req::name_info(const std::string &ip, unsigned int return name_info(details::ip_addr(ip.data(), port), flags); } -UVW_INLINE int get_name_info_req::name_info(socket_address addr, int flags) { - return name_info(std::move(addr.ip), addr.port, flags); +UVW_INLINE int get_name_info_req::name_info(const socket_address &addr, int flags) { + return name_info(addr.ip, addr.port, flags); } UVW_INLINE std::pair> get_name_info_req::name_info_sync(const sockaddr &addr, int flags) { @@ -82,7 +82,7 @@ UVW_INLINE std::pair> get_name_info_ return name_info_sync(details::ip_addr(ip.data(), port), flags); } -UVW_INLINE std::pair> get_name_info_req::name_info_sync(socket_address addr, int flags) { +UVW_INLINE std::pair> get_name_info_req::name_info_sync(const socket_address &addr, int flags) { return name_info_sync(addr.ip, addr.port, flags); } diff --git a/src/uvw/fs_event.ipp b/src/uvw/fs_event.ipp index 87d93cf5..f2793d86 100644 --- a/src/uvw/fs_event.ipp +++ b/src/uvw/fs_event.ipp @@ -1,10 +1,9 @@ -#include #include "config.h" namespace uvw { UVW_INLINE fs_event_event::fs_event_event(const char *pathname, details::uvw_fs_event events) - : filename{pathname}, flags{std::move(events)} {} + : filename{pathname}, flags{events} {} // NOLINTNEXTLINE(bugprone-easily-swappable-parameters) UVW_INLINE void fs_event_handle::start_callback(uv_fs_event_t *hndl, const char *filename, int events, int status) { diff --git a/src/uvw/fs_poll.ipp b/src/uvw/fs_poll.ipp index 3f3b167d..7c19fecc 100644 --- a/src/uvw/fs_poll.ipp +++ b/src/uvw/fs_poll.ipp @@ -1,10 +1,9 @@ -#include #include "config.h" namespace uvw { UVW_INLINE fs_poll_event::fs_poll_event(file_info previous, file_info current) noexcept - : prev{std::move(previous)}, curr{std::move(current)} {} + : prev{previous}, curr{current} {} UVW_INLINE void fs_poll_handle::start_callback(uv_fs_poll_t *hndl, int status, const uv_stat_t *prev, const uv_stat_t *curr) { if(fs_poll_handle &fsPoll = *(static_cast(hndl->data)); status) { diff --git a/src/uvw/poll.ipp b/src/uvw/poll.ipp index 4c04465e..057236d5 100644 --- a/src/uvw/poll.ipp +++ b/src/uvw/poll.ipp @@ -4,7 +4,7 @@ namespace uvw { UVW_INLINE poll_event::poll_event(details::uvw_poll_event events) noexcept - : flags{std::move(events)} {} + : flags{events} {} UVW_INLINE poll_handle::poll_handle(loop::token token, std::shared_ptr ref, int desc) : handle{token, std::move(ref)}, tag{FD}, file_desc{desc} {} diff --git a/src/uvw/process.h b/src/uvw/process.h index 91d0089a..a0d7d479 100644 --- a/src/uvw/process.h +++ b/src/uvw/process.h @@ -181,7 +181,7 @@ public: uv_stdio_container_t container; container.flags = static_cast(flags); container.data.stream = reinterpret_cast(stream.raw()); - po_stream_stdio.push_back(std::move(container)); + po_stream_stdio.push_back(container); return *this; } diff --git a/src/uvw/process.ipp b/src/uvw/process.ipp index 6cef5adc..25595b17 100644 --- a/src/uvw/process.ipp +++ b/src/uvw/process.ipp @@ -85,7 +85,7 @@ UVW_INLINE process_handle &process_handle::stdio(file_handle fd, stdio_flags fla uv_stdio_container_t container; container.flags = fgs; container.data.fd = actual; - po_fd_stdio.push_back(std::move(container)); + po_fd_stdio.push_back(container); } else { it->flags = fgs; it->data.fd = actual; diff --git a/src/uvw/tcp.h b/src/uvw/tcp.h index 56b0d797..078c2896 100644 --- a/src/uvw/tcp.h +++ b/src/uvw/tcp.h @@ -150,7 +150,7 @@ public: * @param opts Optional additional flags. * @return Underlying return value. */ - int bind(socket_address addr, tcp_flags opts = tcp_flags::UVW_ENUM); + int bind(const socket_address &addr, tcp_flags opts = tcp_flags::UVW_ENUM); /** * @brief Gets the current address to which the handle is bound. @@ -199,7 +199,7 @@ public: * @param addr A valid instance of socket_address. * @return Underlying return value. */ - int connect(socket_address addr); + int connect(const socket_address &addr); /** * @brief Resets a TCP connection by sending a RST packet. diff --git a/src/uvw/tcp.ipp b/src/uvw/tcp.ipp index dfaa9b59..7ec2a805 100644 --- a/src/uvw/tcp.ipp +++ b/src/uvw/tcp.ipp @@ -37,7 +37,7 @@ UVW_INLINE int tcp_handle::bind(const std::string &ip, unsigned int port, tcp_fl return bind(details::ip_addr(ip.data(), port), opts); } -UVW_INLINE int tcp_handle::bind(socket_address addr, tcp_flags opts) { +UVW_INLINE int tcp_handle::bind(const socket_address &addr, tcp_flags opts) { return bind(addr.ip, addr.port, opts); } @@ -59,7 +59,7 @@ UVW_INLINE int tcp_handle::connect(const std::string &ip, unsigned int port) { return connect(details::ip_addr(ip.data(), port)); } -UVW_INLINE int tcp_handle::connect(socket_address addr) { +UVW_INLINE int tcp_handle::connect(const socket_address &addr) { return connect(addr.ip, addr.port); } diff --git a/src/uvw/udp.h b/src/uvw/udp.h index 4034c200..3bb61c58 100644 --- a/src/uvw/udp.h +++ b/src/uvw/udp.h @@ -154,7 +154,7 @@ public: * @param addr A valid instance of socket_address. * @return Underlying return value. */ - int connect(socket_address addr); + int connect(const socket_address &addr); /** * @brief Disconnects the handle. @@ -240,7 +240,7 @@ public: * @param opts Optional additional flags. * @return Underlying return value. */ - int bind(socket_address addr, udp_flags opts = udp_flags::UVW_ENUM); + int bind(const socket_address &addr, udp_flags opts = udp_flags::UVW_ENUM); /** * @brief Get the local IP and port of the UDP handle. @@ -358,7 +358,7 @@ public: * @param len The lenght of the submitted data. * @return Underlying return value. */ - int send(socket_address addr, std::unique_ptr data, unsigned int len); + int send(const socket_address &addr, std::unique_ptr data, unsigned int len); /** * @brief Sends data over the UDP socket. @@ -416,7 +416,7 @@ public: * @param len The lenght of the submitted data. * @return Underlying return value. */ - int send(socket_address addr, char *data, unsigned int len); + int send(const socket_address &addr, char *data, unsigned int len); /** * @brief Sends data over the UDP socket. @@ -456,7 +456,7 @@ public: * @param len The lenght of the submitted data. * @return Underlying return value. */ - int try_send(socket_address addr, std::unique_ptr data, unsigned int len); + int try_send(const socket_address &addr, std::unique_ptr data, unsigned int len); /** * @brief Sends data over the UDP socket. @@ -496,7 +496,7 @@ public: * @param len The lenght of the submitted data. * @return Underlying return value. */ - int try_send(socket_address addr, char *data, unsigned int len); + int try_send(const socket_address &addr, char *data, unsigned int len); /** * @brief Prepares for receiving data. diff --git a/src/uvw/udp.ipp b/src/uvw/udp.ipp index 633f1326..28d8019d 100644 --- a/src/uvw/udp.ipp +++ b/src/uvw/udp.ipp @@ -67,7 +67,7 @@ UVW_INLINE int udp_handle::connect(const std::string &ip, unsigned int port) { return connect(details::ip_addr(ip.data(), port)); } -UVW_INLINE int udp_handle::connect(socket_address addr) { +UVW_INLINE int udp_handle::connect(const socket_address &addr) { return connect(addr.ip, addr.port); } @@ -90,7 +90,7 @@ UVW_INLINE int udp_handle::bind(const std::string &ip, unsigned int port, udp_fl return bind(details::ip_addr(ip.data(), port), opts); } -UVW_INLINE int udp_handle::bind(socket_address addr, udp_flags opts) { +UVW_INLINE int udp_handle::bind(const socket_address &addr, udp_flags opts) { return bind(addr.ip, addr.port, opts); } @@ -142,7 +142,7 @@ UVW_INLINE int udp_handle::send(const std::string &ip, unsigned int port, std::u return send(details::ip_addr(ip.data(), port), std::move(data), len); } -UVW_INLINE int udp_handle::send(socket_address addr, std::unique_ptr data, unsigned int len) { +UVW_INLINE int udp_handle::send(const socket_address &addr, std::unique_ptr data, unsigned int len) { return send(addr.ip, addr.port, std::move(data), len); } @@ -163,7 +163,7 @@ UVW_INLINE int udp_handle::send(const std::string &ip, unsigned int port, char * return send(details::ip_addr(ip.data(), port), data, len); } -UVW_INLINE int udp_handle::send(socket_address addr, char *data, unsigned int len) { +UVW_INLINE int udp_handle::send(const socket_address &addr, char *data, unsigned int len) { return send(addr.ip, addr.port, data, len); } @@ -176,7 +176,7 @@ UVW_INLINE int udp_handle::try_send(const std::string &ip, unsigned int port, st return try_send(details::ip_addr(ip.data(), port), std::move(data), len); } -UVW_INLINE int udp_handle::try_send(socket_address addr, std::unique_ptr data, unsigned int len) { +UVW_INLINE int udp_handle::try_send(const socket_address &addr, std::unique_ptr data, unsigned int len) { return try_send(addr.ip, addr.port, std::move(data), len); } @@ -189,7 +189,7 @@ UVW_INLINE int udp_handle::try_send(const std::string &ip, unsigned int port, ch return try_send(details::ip_addr(ip.data(), port), data, len); } -UVW_INLINE int udp_handle::try_send(socket_address addr, char *data, unsigned int len) { +UVW_INLINE int udp_handle::try_send(const socket_address &addr, char *data, unsigned int len) { return try_send(addr.ip, addr.port, data, len); } diff --git a/src/uvw/work.ipp b/src/uvw/work.ipp index 7c23a9cf..020cd4b3 100644 --- a/src/uvw/work.ipp +++ b/src/uvw/work.ipp @@ -4,7 +4,7 @@ namespace uvw { UVW_INLINE work_req::work_req(loop::token token, std::shared_ptr ref, task t) - : request{token, std::move(ref)}, func{t} {} + : request{token, std::move(ref)}, func{std::move(t)} {} UVW_INLINE void work_req::work_callback(uv_work_t *req) { static_cast(req->data)->func(); diff --git a/test/uvw/thread.cpp b/test/uvw/thread.cpp index 20a02a91..91c3e039 100644 --- a/test/uvw/thread.cpp +++ b/test/uvw/thread.cpp @@ -4,7 +4,7 @@ TEST(Thread, Run) { auto loop = uvw::loop::get_default(); auto has_run = std::make_shared(); - auto cb = [](std::shared_ptr data) { + auto cb = [](const std::shared_ptr &data) { if(auto has_run_ptr = std::static_pointer_cast(data); has_run_ptr) { *has_run_ptr = true; }