Speed up ast_list macros (bug #3135)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2004-12-23 15:11:46 +00:00
parent b9c3f3567a
commit cecda3fb67
6 changed files with 13 additions and 15 deletions

View File

@@ -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; \