From: Vsevolod Stakhov Date: Thu, 11 Jul 2019 14:49:29 +0000 (+0100) Subject: [Project] Add linked list reversal procedure X-Git-Tag: 2.0~603^2~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78ddedc88187b5a028c2f0ef649577cb33b19d24;p=thirdparty%2Frspamd.git [Project] Add linked list reversal procedure --- diff --git a/contrib/uthash/utlist.h b/contrib/uthash/utlist.h index e4d9a4c23d..6c72b9fb2a 100644 --- a/contrib/uthash/utlist.h +++ b/contrib/uthash/utlist.h @@ -365,6 +365,15 @@ do { } \ } while (0) +#define LL_REVERSE2(head,next) do { \ + LDECLTYPE(head) _cur = (head), _p = NULL, _n = NULL; \ + while(_cur != NULL) { _n = _cur->next; _cur->next = _p; _p = _cur; _cur = _n; } \ + (head) = _p; \ +} while (0) + +#define LL_REVERSE(head) \ + LL_REVERSE2(head,next) + /* Here are VS2008 replacements for LL_APPEND and LL_DELETE */ #define LL_APPEND_VS2008(head,add) \ LL_APPEND2_VS2008(head,add,next)