event/WinSelect: use unordered_map::find() instead of operator[]

The latter creates a new object, but we know that the key already
exists.
This commit is contained in:
Max Kellermann 2020-10-30 16:05:05 +01:00
parent 9e97acc28d
commit 69b45e693b

View File

@ -53,7 +53,7 @@ WinSelectBackend::Modify(WinSelectBackend::Item &item, SOCKET fd,
else if (index >= 0 && !HasEvent(events, event_id)) { else if (index >= 0 && !HasEvent(events, event_id)) {
if (size_t(index) != set.Size() - 1) { if (size_t(index) != set.Size() - 1) {
set.MoveToEnd(index); set.MoveToEnd(index);
items[set[index]].index[event_id] = index; items.find(set[index])->second.index[event_id] = index;
} }
set.RemoveLast(); set.RemoveLast();
item.index[event_id] = -1; item.index[event_id] = -1;
@ -121,7 +121,10 @@ void
WinSelectBackend::ApplyReady(const SocketSet &src, unsigned events) noexcept WinSelectBackend::ApplyReady(const SocketSet &src, unsigned events) noexcept
{ {
for (const auto i : src) { for (const auto i : src) {
items[i].events |= events; auto it = items.find(i);
assert(it != items.end());
it->second.events |= events;
} }
} }