From d980ed74201cbf9fb454cff112498f49e46318c5 Mon Sep 17 00:00:00 2001 From: seajee Date: Tue, 18 Nov 2025 21:43:44 +0100 Subject: [PATCH] Never nest --- hm.h | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/hm.h b/hm.h index 6adc328..d96a455 100644 --- a/hm.h +++ b/hm.h @@ -264,23 +264,25 @@ bool hm_remove(HashMap *hm, const void *key) } for (Hm__Bucket *cur = head; cur != NULL; cur = cur->next) { - if (hm__keycmp(hm, key, cur->key)) { - if (cur == head) { - hm->map[idx] = cur->next; - } else { - cur->prev->next = cur->next; - } - - if (cur->next != NULL) { - cur->next->prev = cur->prev; - } - - HM_FREE(cur->key); - HM_FREE(cur->value); - HM_FREE(cur); - --hm->count; - return true; + if (!hm__keycmp(hm, key, cur->key)) { + continue; } + + if (cur == head) { + hm->map[idx] = cur->next; + } else { + cur->prev->next = cur->next; + } + + if (cur->next != NULL) { + cur->next->prev = cur->prev; + } + + HM_FREE(cur->key); + HM_FREE(cur->value); + HM_FREE(cur); + --hm->count; + return true; } return false;