Merge remainder of kpfleming's astobj patch (bug #3183)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Mark Spencer 21 years ago
parent f19f4411e1
commit 9aace6da49

@ -179,6 +179,7 @@ extern "C" {
while((iterator = (container)->head)) { \ while((iterator = (container)->head)) { \
(container)->head = (iterator)->next[0]; \ (container)->head = (iterator)->next[0]; \
ASTOBJ_DESTROY(iterator,destructor); \ ASTOBJ_DESTROY(iterator,destructor); \
ASTOBJ_UNREF(iterator,destructor); \
} \ } \
ASTOBJ_CONTAINER_UNLOCK(container); \ ASTOBJ_CONTAINER_UNLOCK(container); \
} while(0) } while(0)
@ -190,7 +191,7 @@ extern "C" {
ASTOBJ_CONTAINER_TRAVERSE(container, do { \ ASTOBJ_CONTAINER_TRAVERSE(container, do { \
ASTOBJ_RDLOCK(iterator); \ ASTOBJ_RDLOCK(iterator); \
if (!(comparefunc(iterator->field, (data)))) { \ if (!(comparefunc(iterator->field, (data)))) { \
found = ASTOBJ_REF(iterator); \ found = iterator; \
ASTOBJ_CONTAINER_WRLOCK(container); \ ASTOBJ_CONTAINER_WRLOCK(container); \
if (prev) \ if (prev) \
prev->next[0] = next; \ prev->next[0] = next; \
@ -232,7 +233,7 @@ extern "C" {
do { \ do { \
ASTOBJ_CONTAINER_WRLOCK(container); \ ASTOBJ_CONTAINER_WRLOCK(container); \
(newobj)->next[0] = (container)->head; \ (newobj)->next[0] = (container)->head; \
(container)->head = (newobj); \ (container)->head = ASTOBJ_REF(newobj); \
ASTOBJ_CONTAINER_UNLOCK(container); \ ASTOBJ_CONTAINER_UNLOCK(container); \
} while(0) } while(0)

Loading…
Cancel
Save