70#define BM_ELEM_INDEX_VALIDATE(_bm, _msg_a, _msg_b) \
71 BM_mesh_elem_index_validate(_bm, __FILE__ ":" STRINGIFY(__LINE__), __func__, _msg_a, _msg_b)
74#ifdef WITH_ASSERT_ABORT
75# define _BMESH_DUMMY_ABORT abort
77# define _BMESH_DUMMY_ABORT() (void)0
84#define BMESH_ASSERT(a) \
85 (void)((!(a)) ? ((fprintf(stderr, \
86 "BMESH_ASSERT failed: %s, %s(), %d at \'%s\'\n", \
91 _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)