diff options
Diffstat (limited to 'res')
-rw-r--r-- | res/res_musiconhold.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index bc20a3de8..32fda87bf 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -210,8 +210,9 @@ static int reload(void); #define mohclass_unref(class,string) _mohclass_unref(class, string, __FILE__,__LINE__,__PRETTY_FUNCTION__) static struct mohclass *_mohclass_unref(struct mohclass *class, const char *tag, const char *file, int line, const char *funcname) { - struct mohclass *dup; - if ((dup = ao2_find(mohclasses, class, OBJ_POINTER))) { + struct mohclass *dup = ao2_callback(mohclasses, OBJ_POINTER, ao2_match_by_addr, class); + + if (dup) { if (__ao2_ref_debug(dup, -1, (char *) tag, (char *) file, line, funcname) == 2) { FILE *ref = fopen("/tmp/refs", "a"); if (ref) { @@ -224,7 +225,7 @@ static struct mohclass *_mohclass_unref(struct mohclass *class, const char *tag, ao2_ref(class, -1); } } else { - ao2_t_ref(class, -1, (char *) tag); + __ao2_ref_debug(class, -1, (char *) tag, (char *) file, line, funcname); } return NULL; } |