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
This commit is contained in:
Corey Farrell
2018-11-19 08:00:03 -05:00
parent e0a4df64cd
commit f9b9bdd0b0

View File

@@ -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)
{