From 9aace6da4938f529f883a9c45cfa71a3d9ecac93 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Wed, 29 Dec 2004 07:50:15 +0000
Subject: [PATCH] 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
---
 include/asterisk/astobj.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/asterisk/astobj.h b/include/asterisk/astobj.h
index 1626540243..a70cf70aae 100755
--- a/include/asterisk/astobj.h
+++ b/include/asterisk/astobj.h
@@ -179,6 +179,7 @@ extern "C" {
 		while((iterator = (container)->head)) { \
 			(container)->head = (iterator)->next[0]; \
 			ASTOBJ_DESTROY(iterator,destructor); \
+			ASTOBJ_UNREF(iterator,destructor); \
 		} \
 		ASTOBJ_CONTAINER_UNLOCK(container); \
 	} while(0)
@@ -190,7 +191,7 @@ extern "C" {
 		ASTOBJ_CONTAINER_TRAVERSE(container, do { \
 			ASTOBJ_RDLOCK(iterator); \
 			if (!(comparefunc(iterator->field, (data)))) { \
-				found = ASTOBJ_REF(iterator); \
+				found = iterator; \
 				ASTOBJ_CONTAINER_WRLOCK(container); \
 				if (prev) \
 					prev->next[0] = next; \
@@ -232,7 +233,7 @@ extern "C" {
 	do { \
 		ASTOBJ_CONTAINER_WRLOCK(container); \
 		(newobj)->next[0] = (container)->head; \
-		(container)->head = (newobj); \
+		(container)->head = ASTOBJ_REF(newobj); \
 		ASTOBJ_CONTAINER_UNLOCK(container); \
 	} while(0)
 
-- 
GitLab