diff options
Diffstat (limited to 'main/astobj2_private.h')
-rw-r--r-- | main/astobj2_private.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/main/astobj2_private.h b/main/astobj2_private.h index 0583faf7f..ef47ed774 100644 --- a/main/astobj2_private.h +++ b/main/astobj2_private.h @@ -43,7 +43,24 @@ struct ao2_stats { extern struct ao2_stats ao2; #endif /* defined(AO2_DEBUG) */ -int is_ao2_object(void *user_data); +void log_bad_ao2(void *user_data, const char *file, int line, const char *func); +int internal_is_ao2_object(void *user_data); + +#define __is_ao2_object(user_data, file, line, func) \ + ({ \ + int ret ## __LINE__ = 0; \ + if (user_data) { \ + ret ## __LINE__ = internal_is_ao2_object(user_data); \ + } \ + if (!ret ## __LINE__) { \ + log_bad_ao2(user_data, file, line, func); \ + } \ + (ret ## __LINE__); \ + }) + +#define is_ao2_object(user_data) \ + __is_ao2_object(user_data, __FILE__, __LINE__, __PRETTY_FUNCTION__) + enum ao2_lock_req __adjust_lock(void *user_data, enum ao2_lock_req lock_how, int keep_stronger); #endif /* ASTOBJ2_PRIVATE_H_ */ |