66 #define BM_ELEM_INDEX_VALIDATE(_bm, _msg_a, _msg_b) \
67 BM_mesh_elem_index_validate(_bm, __FILE__ ":" STRINGIFY(__LINE__), __func__, _msg_a, _msg_b)
70 #ifdef WITH_ASSERT_ABORT
71 # define _BMESH_DUMMY_ABORT abort
73 # define _BMESH_DUMMY_ABORT() (void)0
80 #define BMESH_ASSERT(a) \
81 (void)((!(a)) ? ((fprintf(stderr, \
82 "BMESH_ASSERT failed: %s, %s(), %d at \'%s\'\n", \
87 _BMESH_DUMMY_ABORT(), \
#define ATTR_NONNULL(...)
void BMO_error_clear(BMesh *bm)
bool BMO_error_get_at_level(BMesh *bm, eBMOpErrorLevel level, const char **r_msg, BMOperator **r_op)
bool BMO_error_occurred_at_level(BMesh *bm, eBMOpErrorLevel level)
void BMO_error_raise(BMesh *bm, BMOperator *owner, eBMOpErrorLevel level, const char *msg) ATTR_NONNULL(1
void bool BMO_error_get(BMesh *bm, const char **r_msg, BMOperator **r_op, eBMOpErrorLevel *r_level)
bool BMO_error_pop(BMesh *bm, const char **r_msg, BMOperator **r_op, eBMOpErrorLevel *r_level)
ATTR_WARN_UNUSED_RESULT BMesh * bm