 |
XFusion API v1.3.0
|
浏览该文件的文档.
17#include "../xf_common/xf_common.h"
18#include "../xf_utils_log/xf_utils_log.h"
60#if XF_CHECK_IS_ENABLE || XF_ASSERT_IS_ENABLE
69# define XF_CHECK_ACTION_RETURN(condition, retval, action) \
72 do {action} while (0); \
77# define XF_CHECK_ACTION_RETURN(condition, retval, action)
80#if XF_CHECK_IS_ENABLE || XF_ASSERT_IS_ENABLE
88# define XF_CHECK_ACTION_GOTO(condition, label, action) \
91 do {action} while (0); \
96# define XF_CHECK_ACTION_GOTO(condition, retval, action)
112# define XF_CHECK(condition, retval, tag, format, ...) \
113 XF_CHECK_ACTION_RETURN( \
114 !!(condition), retval, \
115 XF_LOGE((tag), format, ##__VA_ARGS__); \
127# define XF_CHECK_GOTO(condition, label, tag, format, ...) \
128 XF_CHECK_ACTION_GOTO( \
129 !!(condition), label, \
130 XF_LOGE((tag), format, ##__VA_ARGS__); \
133# define XF_CHECK(condition, retval, tag, format, ...) do { (void)tag; } while (0)
134# define XF_CHECK_GOTO(condition, label, tag, format, ...) do { (void)tag; } while (0)
137#if XF_ASSERT_IS_ENABLE
150# define XF_ASSERT(condition, retval, tag, format, ...) \
151 XF_CHECK_ACTION_RETURN( \
152 !(condition), retval, \
153 XF_LOGE((tag), format, ##__VA_ARGS__); \
165# define XF_ASSERT_GOTO(condition, label, tag, format, ...) \
166 XF_CHECK_ACTION_GOTO( \
167 !(condition), label, \
168 XF_LOGE((tag), format, ##__VA_ARGS__); \
171# define XF_ASSERT(condition, retval, tag, format, ...) do { (void)tag; } while (0)
172# define XF_ASSERT_GOTO(condition, label, tag, format, ...) do { (void)tag; } while (0)
175#if XF_ERROR_CHECK_IS_ENABLE
182# define XF_ERROR_CHECK(expression) \
184 xf_err_t __err = (expression); \
185 if (unlikely((__err) != XF_OK)) { \
186 XF_LOGE("xf_check", "An error occurred: " XSTR(expression != XF_OK)); \
187 XF_CHECK_ERROR_HANDLER \
191# define XF_ERROR_CHECK(expression)