libvisual  0.5.0
lv_checks.h
1 #ifndef _LV_CHECKS_H
2 #define _LV_CHECKS_H
3 
4 #include <libvisual/lvconfig.h>
5 
6 #ifdef NDEBUG
7 
8 #define visual_return_if_fail(expr)
9 #define visual_return_val_if_fail(expr, val)
10 
11 #else /* NDEBUG */
12 
13 #include <libvisual/lv_log.h>
14 
15 #ifdef VISUAL_PEDANTIC_CHECKS
16 
17 #include <libvisual/lv_error.h>
18 
19 #define visual_return_if_fail(expr) \
20  if (!(expr)) { \
21  visual_log (VISUAL_LOG_CRITICAL, "Assertion '%s' failed", #expr); \
22  visual_error_raise (VISUAL_ERROR_FAILED_CHECK); \
23  }
24 
25 #define visual_return_val_if_fail(expr, val) \
26  if (!(expr)) { \
27  visual_log (VISUAL_LOG_CRITICAL, "Assertion '%s' failed", #expr); \
28  visual_error_raise (VISUAL_ERROR_FAILED_CHECK); \
29  return (val); \
30  }
31 
32 #else /* VISUAL_PEDANTIC_CHECKS */
33 
38 #define visual_return_if_fail(expr) \
39  if (!(expr)) { \
40  visual_log (VISUAL_LOG_WARNING, \
41  "Assertion `%s' failed", #expr); \
42  return; \
43  }
44 
49 #define visual_return_val_if_fail(expr, val) \
50  if (!(expr)) { \
51  visual_log (VISUAL_LOG_WARNING, \
52  "Assertion `%s' failed", #expr); \
53  return (val); \
54  }
55 
56 #endif /* VISUAL_PEDANTIC_CHECKS */
57 
58 #endif /* NDEBUG */
59 
60 #endif /* _LV_CHECKS_H */