#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) {
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;
}