mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
Astobj2: Allow reference debugging to be enabled/disabled by config.
* The REF_DEBUG compiler flag no longer has any effect on code that uses Astobj2. It is used to determine if reference debugging is enabled by default. Reference debugging can be enabled or disabled in asterisk.conf. * Caller information is provided in logger errors for ao2 bad magic numbers. * Optimizes AO2 by merging internal functions with the public counterpart. This was possible now that we no longer require a dual ABI. ASTERISK-24974 #close Reported by: Corey Farrell Change-Id: Icf3552721fe999365ba8a8cf00a965aa6b897cc1
This commit is contained in:
@@ -1814,50 +1814,27 @@ 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);
|
||||
}
|
||||
|
||||
#ifdef REF_DEBUG
|
||||
#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 queues_t_link(c, q, tag) __ao2_link_debug(c, q, 0, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__)
|
||||
#define queues_t_unlink(c, q, tag) __ao2_unlink_debug(c, q, 0, tag, __FILE__, __LINE__, __PRETTY_FUNCTION__)
|
||||
#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_debug(q, 1, tag, file, line, 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_debug(q, -1, tag, file, line, filename);
|
||||
__ao2_ref(q, -1, tag, file, line, filename);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define queue_t_ref(q, tag) queue_ref(q)
|
||||
#define queue_t_unref(q, tag) queue_unref(q)
|
||||
#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)
|
||||
{
|
||||
ao2_ref(q, 1);
|
||||
return q;
|
||||
}
|
||||
|
||||
static inline struct call_queue *queue_unref(struct call_queue *q)
|
||||
{
|
||||
if (q) {
|
||||
ao2_ref(q, -1);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*! \brief Set variables of queue */
|
||||
static void set_queue_variables(struct call_queue *q, struct ast_channel *chan)
|
||||
{
|
||||
|
Reference in New Issue
Block a user