ao2_container node object ignores REF_DEBUG in all places except one
authorCorey Farrell <git@cfware.com>
Wed, 25 Jun 2014 18:57:04 +0000 (18:57 +0000)
committerCorey Farrell <git@cfware.com>
Wed, 25 Jun 2014 18:57:04 +0000 (18:57 +0000)
Almost every reference operation against container node's uses
__ao2_alloc or __ao2_ref, thereby preventing ref logging for
the nodes.  One node reference is released with ao2_t_ref, causing
refcounter.py to falsely report skews and leaks for many nodes.

ASTERISK-23922 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3670/
........

Merged revisions 417212 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@417213 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/astobj2_container.c

index bf53d8f..4d4e474 100644 (file)
@@ -75,7 +75,8 @@ int __container_unlink_node_debug(struct ao2_container_node *node, uint32_t flag
        }
 
        if (flags & AO2_UNLINK_NODE_UNREF_NODE) {
-               ao2_t_ref(node, -1, "Remove node from container");
+               /* Remove node from container */
+               __ao2_ref(node, -1);
        }
 
        return 1;