diff options
author | Richard Mudgett <rmudgett@digium.com> | 2013-05-14 19:03:26 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2013-05-14 19:03:26 +0000 |
commit | d1d1425327378e16e77e7de6e64daccf289b4cc3 (patch) | |
tree | b5d805a65772466efe7cb1b91c7c24979eb996d9 /main/astobj2.c | |
parent | 2a9cbd693e2016ecaa1e2e31ca520a9dd48f0ca2 (diff) |
Make ao2 global objects not always use the debug version of the ao2_ref() calls.
The debug versions of ao2_ref() should only be used if REF_DEBUG is
enabled so nothing is written to /tmp/refs unexpectedly.
(closes issue ASTERISK-21785)
Reported by: abelbeck
Patches:
jira_asterisk_21785_v11.patch (license #5621) patch uploaded by rmudgett
Tested by: abelbeck
........
Merged revisions 388700 from http://svn.asterisk.org/svn/asterisk/branches/11
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/astobj2.c')
-rw-r--r-- | main/astobj2.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/main/astobj2.c b/main/astobj2.c index 8ccc36cb4..9f5e05d43 100644 --- a/main/astobj2.c +++ b/main/astobj2.c @@ -684,7 +684,11 @@ void __ao2_global_obj_release(struct ao2_global_obj *holder, const char *tag, co /* Release the held ao2 object. */ if (holder->obj) { - __ao2_ref_debug(holder->obj, -1, tag, file, line, func); + if (tag) { + __ao2_ref_debug(holder->obj, -1, tag, file, line, func); + } else { + __ao2_ref(holder->obj, -1); + } holder->obj = NULL; } @@ -708,7 +712,11 @@ void *__ao2_global_obj_replace(struct ao2_global_obj *holder, void *obj, const c } if (obj) { - __ao2_ref_debug(obj, +1, tag, file, line, func); + if (tag) { + __ao2_ref_debug(obj, +1, tag, file, line, func); + } else { + __ao2_ref(obj, +1); + } } obj_old = holder->obj; holder->obj = obj; @@ -724,7 +732,11 @@ int __ao2_global_obj_replace_unref(struct ao2_global_obj *holder, void *obj, con obj_old = __ao2_global_obj_replace(holder, obj, tag, file, line, func, name); if (obj_old) { - __ao2_ref_debug(obj_old, -1, tag, file, line, func); + if (tag) { + __ao2_ref_debug(obj_old, -1, tag, file, line, func); + } else { + __ao2_ref(obj_old, -1); + } return 1; } return 0; @@ -749,7 +761,11 @@ void *__ao2_global_obj_ref(struct ao2_global_obj *holder, const char *tag, const obj = holder->obj; if (obj) { - __ao2_ref_debug(obj, +1, tag, file, line, func); + if (tag) { + __ao2_ref_debug(obj, +1, tag, file, line, func); + } else { + __ao2_ref(obj, +1); + } } __ast_rwlock_unlock(file, line, func, &holder->lock, name); |