summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/astobj2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/main/astobj2.c b/main/astobj2.c
index e9e2db7e5..391154828 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -930,6 +930,12 @@ static char *handle_astobj2_test(struct ast_cli_entry *e, int cmd, struct ast_cl
ast_cli(a->fd, "object %d allocated as %p\n", i, obj);
sprintf(obj, "-- this is obj %d --", i);
ao2_link(c1, obj);
+ /* At this point, the refcount on obj is 2 due to the allocation
+ * and linking. We can go ahead and reduce the refcount by 1
+ * right here so that when the container is unreffed later, the
+ * objects will be freed
+ */
+ ao2_t_ref(obj, -1, test);
}
ast_cli(a->fd, "testing callbacks\n");
ao2_t_callback(c1, 0, print_cb, &a->fd,"test callback");