From baffe498870d1f45d0a5a279d972cc9ba2afa1d6 Mon Sep 17 00:00:00 2001 From: chme Date: Wed, 13 May 2015 11:37:09 +0200 Subject: [PATCH] refactor use for loop to remove item from linked list --- src/listener.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/listener.c b/src/listener.c index 0080a804..64ffed2f 100644 --- a/src/listener.c +++ b/src/listener.c @@ -51,27 +51,25 @@ listener_remove(notify notify_cb) struct listener *listener; struct listener *prev; - listener = listener_list; prev = NULL; - - while (listener) + for (listener = listener_list; listener; listener = listener->next) { if (listener->notify_cb == notify_cb) - { - if (prev) - prev->next = listener->next; - else - listener_list = NULL; - - free(listener); - return 0; - } + break; prev = listener; - listener = listener->next; } - return -1; + if (!listener) + return 0; + + if (prev) + prev->next = listener->next; + else + listener_list = NULL; + + free(listener); + return 0; } int