diff options
author | Mark Spencer <markster@digium.com> | 2004-12-23 15:11:46 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-12-23 15:11:46 +0000 |
commit | cecda3fb6797ca6e3da8ff1fd3fe6e79c3b23719 (patch) | |
tree | eadb7c681e0fecd6f7d64f2cfe5c72dedc2cd7c3 /include/asterisk | |
parent | b9c3f3567a0ff290f3db52087c6d6737480e5f7c (diff) |
Speed up ast_list macros (bug #3135)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk')
-rwxr-xr-x | include/asterisk/linkedlists.h | 8 |
1 files changed, 5 insertions, 3 deletions
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; \ |