From f9b9bdd0b0b05b2e8b71455100b315d6ffddff89 Mon Sep 17 00:00:00 2001 From: Corey Farrell Date: Mon, 19 Nov 2018 08:00:03 -0500 Subject: [PATCH] app_queue: Cleanup queue_ref / queue_unref routines. This replaces the inline functions with macros. This removes the need to directly use __ao2_ref, opts instead for standard ao2_bump and ao2_cleanup macros. Change-Id: If4e04e9bab2e3c883188437cb9f487b3e498a21b --- apps/app_queue.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index 80c253f224..e5760945dc 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -1918,27 +1918,13 @@ static void queue_member_follower_removal(struct call_queue *queue, struct membe ao2_callback(queue->members, OBJ_NODATA | OBJ_MULTIPLE, queue_member_decrement_followers, &pos); } -#define queue_ref(q) _queue_ref(q, "", __FILE__, __LINE__, __PRETTY_FUNCTION__) -#define queue_unref(q) _queue_unref(q, "", __FILE__, __LINE__, __PRETTY_FUNCTION__) -#define queue_t_ref(q, tag) _queue_ref(q, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__) -#define queue_t_unref(q, tag) _queue_unref(q, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__) +#define queue_ref(q) ao2_bump(q) +#define queue_unref(q) ({ ao2_cleanup(q); NULL; }) +#define queue_t_ref(q, tag) ao2_t_bump(q, tag) +#define queue_t_unref(q, tag) ({ ao2_t_cleanup(q, tag); NULL; }) #define queues_t_link(c, q, tag) ao2_t_link(c, q, tag) #define queues_t_unlink(c, q, tag) ao2_t_unlink(c, q, tag) -static inline struct call_queue *_queue_ref(struct call_queue *q, const char *tag, const char *file, int line, const char *filename) -{ - __ao2_ref(q, 1, tag, file, line, filename); - return q; -} - -static inline struct call_queue *_queue_unref(struct call_queue *q, const char *tag, const char *file, int line, const char *filename) -{ - if (q) { - __ao2_ref(q, -1, tag, file, line, filename); - } - return NULL; -} - /*! \brief Set variables of queue */ static void set_queue_variables(struct call_queue *q, struct ast_channel *chan) {