From 2572530957a2055f3c7b05bfb503bce58e9cc116 Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Sun, 13 Nov 2022 14:54:41 +0100 Subject: [PATCH] ensure clients are valid when iterated over --- include/TServer.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/include/TServer.h b/include/TServer.h index 9cb6716..fb0b069 100644 --- a/include/TServer.h +++ b/include/TServer.h @@ -51,9 +51,13 @@ public: Clients = mClients; } for (auto& Client : Clients) { - IterationDecision Decision = std::invoke(Fn, Client); - if (Decision == IterationDecision::Break) { - break; + if (Client) [[likely]] { + IterationDecision Decision = std::invoke(Fn, Client); + if (Decision == IterationDecision::Break) { + break; + } + } else { + beammp_assert_not_reachable(); } } } @@ -65,7 +69,11 @@ public: Clients = mClients; } for (auto& Client : Clients) { - std::invoke(Fn, Client); + if (Client) [[likely]] { + std::invoke(Fn, Client); + } else { + beammp_assert_not_reachable(); + } } } size_t ClientCount() const;