aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-25 23:03:11 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-25 23:03:11 +0000
commit7343abf86992cbec54890cf2d858134f30039d59 (patch)
treee012a6e93dec6de7efb16e38233776adfa3f3184 /include/asterisk
parent0e9e1fd41534c526d91bc5e64720cf5371783a74 (diff)
appending one list to another should leave the first list empty, and not require the user to do that
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@87069 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk')
-rw-r--r--include/asterisk/linkedlists.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h
index 70a5cdcae..a8d90ecbe 100644
--- a/include/asterisk/linkedlists.h
+++ b/include/asterisk/linkedlists.h
@@ -686,6 +686,9 @@ struct { \
\param list This is a pointer to the list to be appended.
\param field This is the name of the field (declared using AST_LIST_ENTRY())
used to link entries of this list together.
+
+ Note: The source list (the \a list parameter) will be empty after
+ calling this macro (the list entries are \b moved to the target list).
*/
#define AST_LIST_APPEND_LIST(head, list, field) do { \
if (!(head)->first) { \
@@ -695,6 +698,8 @@ struct { \
(head)->last->field.next = (list)->first; \
(head)->last = (list)->last; \
} \
+ (list)->first = NULL; \
+ (list)->last = NULL; \
} while (0)
#define AST_RWLIST_APPEND_LIST AST_LIST_APPEND_LIST