]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_queue: Cleanup queue_ref / queue_unref routines.
authorCorey Farrell <git@cfware.com>
Mon, 19 Nov 2018 13:00:03 +0000 (08:00 -0500)
committerCorey Farrell <git@cfware.com>
Mon, 19 Nov 2018 13:00:03 +0000 (08:00 -0500)
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

index 80c253f2247f1475ebcdccd58862df41ab1bbd56..e5760945dc83fe45a5fa84d8b1c9e161912668fc 100644 (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)
 {