Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenlib/BLI_listbase.h
| Show First 20 Lines • Show All 165 Lines • ▼ Show 20 Lines | #define LISTBASE_CIRCULAR_BACKWARD_END(lb, lb_iter, lb_init) \ | ||||
| while ((lb_iter = (lb_iter)->prev ? (lb_iter)->prev : (lb)->last), (lb_iter != lb_init)) \ | while ((lb_iter = (lb_iter)->prev ? (lb_iter)->prev : (lb)->last), (lb_iter != lb_init)) \ | ||||
| ; \ | ; \ | ||||
| } \ | } \ | ||||
| ((void)0) | ((void)0) | ||||
| #define LISTBASE_FOREACH(type, var, list) \ | #define LISTBASE_FOREACH(type, var, list) \ | ||||
| for (type var = (type)((list)->first); var != NULL; var = (type)(((Link *)(var))->next)) | for (type var = (type)((list)->first); var != NULL; var = (type)(((Link *)(var))->next)) | ||||
| #define LISTBASE_FOREACH_INDEX(type, var, list, index_var) \ | |||||
| for (type var = (((void)(index_var = 0)), (type)((list)->first)); var != NULL; \ | |||||
| var = (type)(((Link *)(var))->next), index_var++) | |||||
| #define LISTBASE_FOREACH_BACKWARD(type, var, list) \ | #define LISTBASE_FOREACH_BACKWARD(type, var, list) \ | ||||
| for (type var = (type)((list)->last); var != NULL; var = (type)(((Link *)(var))->prev)) | for (type var = (type)((list)->last); var != NULL; var = (type)(((Link *)(var))->prev)) | ||||
| /** A version of #LISTBASE_FOREACH that supports removing the item we're looping over. */ | /** A version of #LISTBASE_FOREACH that supports removing the item we're looping over. */ | ||||
| #define LISTBASE_FOREACH_MUTABLE(type, var, list) \ | #define LISTBASE_FOREACH_MUTABLE(type, var, list) \ | ||||
| for (type var = (type)((list)->first), *var##_iter_next; \ | for (type var = (type)((list)->first), *var##_iter_next; \ | ||||
| ((var != NULL) ? ((void)(var##_iter_next = (type)(((Link *)(var))->next)), 1) : 0); \ | ((var != NULL) ? ((void)(var##_iter_next = (type)(((Link *)(var))->next)), 1) : 0); \ | ||||
| var = var##_iter_next) | var = var##_iter_next) | ||||
| Show All 10 Lines | |||||