From: Timo Sirainen Date: Tue, 16 Mar 2021 16:26:20 +0000 (+0200) Subject: lib: event_find_field() - Rewrite without using recursion X-Git-Tag: 2.3.16~319 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=30fd8eada291aa52b0e601ec28c2e6a2028587c2;p=thirdparty%2Fdovecot%2Fcore.git lib: event_find_field() - Rewrite without using recursion This simplifies the following change. --- diff --git a/src/lib/lib-event.c b/src/lib/lib-event.c index 0988be460c..8f214810b6 100644 --- a/src/lib/lib-event.c +++ b/src/lib/lib-event.c @@ -810,10 +810,14 @@ event_find_field_int(const struct event *event, const char *key) const struct event_field * event_find_field(const struct event *event, const char *key) { - const struct event_field *field = event_find_field_int(event, key); - if (field != NULL || event->parent == NULL) - return field; - return event_find_field(event->parent, key); + const struct event_field *field; + + do { + if ((field = event_find_field_int(event, key)) != NULL) + return field; + event = event->parent; + } while (event != NULL); + return NULL; } const char *