From 8f2fabe64f24fdfd17dcc34773bdb2adb1ef1b7e Mon Sep 17 00:00:00 2001 From: markster Date: Thu, 23 Dec 2004 15:11:46 +0000 Subject: Speed up ast_list macros (bug #3135) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4546 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/linkedlists.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h index 75f0aa2cf..c9bc7502d 100755 --- a/include/asterisk/linkedlists.h +++ b/include/asterisk/linkedlists.h @@ -62,13 +62,15 @@ struct { \ } while (0) -#define AST_LIST_REMOVE_HEAD(head, field) do { \ +#define AST_LIST_REMOVE_HEAD(head, type, field) ({ \ + struct type *cur = (head)->first; \ (head)->first = (head)->first->field.next; \ - } while (0) + cur; \ + }) #define AST_LIST_REMOVE(head, elm, type, field) do { \ if ((head)->first == (elm)) { \ - AST_LIST_REMOVE_HEAD((head), field); \ + AST_LIST_REMOVE_HEAD((head), type, field); \ } \ else { \ struct type *curelm = (head)->first; \ -- cgit v1.2.3