From 7f8b29c3465bae5b34999ad417508c2d0f6e6946 Mon Sep 17 00:00:00 2001 From: iphydf Date: Thu, 2 Aug 2018 00:25:20 +0000 Subject: [PATCH] Avoid multiple for-next expressions. All for-loops in toxcore are of the form for (; ; ) { } `for-init` can be a variable declaration (like `int i = 0`), an assignment (like `i = 0`), or empty. `for-cond` can be any expression. `for-next` can be an assignment or a single increment/decrement expression (like `++i` or `--i`). No other forms are allowed, so e.g. comma expressions in any of these are not allowed (so no `for (i = 0, j = n; ...; ++i, --j)`). --- toxcore/DHT.c | 8 +++----- toxcore/Messenger.c | 7 ++++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/toxcore/DHT.c b/toxcore/DHT.c index 01fcfd66..543ee191 100644 --- a/toxcore/DHT.c +++ b/toxcore/DHT.c @@ -1704,12 +1704,10 @@ static uint8_t do_ping_and_sendnode_requests(DHT *dht, uint64_t *lastgetnode, co /* If node is not dead. */ Client_data *client = &list[i]; - IPPTsPng *const assocs[] = { &client->assoc6, &client->assoc4, nullptr }; + IPPTsPng *const assocs[] = { &client->assoc6, &client->assoc4 }; - uint32_t j = 0; - - for (IPPTsPng * const *it = assocs; *it; ++it, ++j) { - IPPTsPng *const assoc = *it; + for (uint32_t j = 0; j < sizeof(assocs) / sizeof(assocs[0]); ++j) { + IPPTsPng *const assoc = assocs[j]; if (!is_timeout(assoc->timestamp, KILL_NODE_TIMEOUT)) { sort = 0; diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index c45debed..cfa76172 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c @@ -2631,10 +2631,11 @@ void do_messenger(Messenger *m, void *userdata) for (client = 0; client < LCLIENT_LIST; ++client) { const Client_data *cptr = dht_get_close_client(m->dht, client); - const IPPTsPng *assoc = nullptr; - uint32_t a; + const IPPTsPng *const assocs[] = { &cptr->assoc4, &cptr->assoc4, nullptr }; + + for (const IPPTsPng * const *it = assocs; *it; ++it) { + const IPPTsPng *const assoc = *it; - for (a = 0, assoc = &cptr->assoc4; a < 2; ++a, assoc = &cptr->assoc6) { if (ip_isset(&assoc->ip_port.ip)) { last_pinged = m->lastdump - assoc->last_pinged;