From b1b731340e63939a1e1c4e76f7ff28937bd96863 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 30 Oct 2020 16:31:39 +0100 Subject: [PATCH] event/PollBackend: add Item constructor --- src/event/PollBackend.cxx | 7 +++---- src/event/PollBackend.hxx | 6 ++++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/event/PollBackend.cxx b/src/event/PollBackend.cxx index 74345a745..a3fad40c3 100644 --- a/src/event/PollBackend.cxx +++ b/src/event/PollBackend.cxx @@ -36,10 +36,9 @@ PollBackend::Add(int fd, unsigned events, void *obj) noexcept e.events = events; e.revents = 0; - auto i = items.emplace(fd, Item{}).first; - auto &item = i->second; - item.index = index; - item.obj = obj; + items.emplace(std::piecewise_construct, + std::forward_as_tuple(fd), + std::forward_as_tuple(index, obj)); return true; } diff --git a/src/event/PollBackend.hxx b/src/event/PollBackend.hxx index 694161a1a..703f9f705 100644 --- a/src/event/PollBackend.hxx +++ b/src/event/PollBackend.hxx @@ -34,6 +34,12 @@ class PollBackend { std::size_t index; void *obj; + + constexpr Item(std::size_t _index, void *_obj) noexcept + :index(_index), obj(_obj) {} + + Item(const Item &) = delete; + Item &operator=(const Item &) = delete; }; std::vector poll_events;