diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-09-11 10:12:48 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-09-11 10:12:48 +0400 |
commit | 39231c90dd5b986612cffd00fe65760430e04c83 (patch) | |
tree | a8e024a9a1f1fa7624180c03e9425c37f47aaac7 /source/blender/bmesh/intern/bmesh_iterators.h | |
parent | 2f436612fe0e4e2986452c3b9d0249b8fd340f8b (diff) |
fix [#31738] BM_vert_splice modifies loops during iteration
patch by Nicholas Bishop, modified to avoid looping over vert-loops one extra time.
added BM_iter_as_arrayN(), returns an iterator as an array without knowing the length before calling.
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_iterators.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_iterators.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source/blender/bmesh/intern/bmesh_iterators.h b/source/blender/bmesh/intern/bmesh_iterators.h index 1361a91a692..8d0eeca31ed 100644 --- a/source/blender/bmesh/intern/bmesh_iterators.h +++ b/source/blender/bmesh/intern/bmesh_iterators.h @@ -115,10 +115,19 @@ typedef struct BMIter { char itype; } BMIter; -void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index); -int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len); -int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value); -int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value); +void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index) +#ifdef __GNUC__ +__attribute__((warn_unused_result)) +#endif +; +int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len); +void *BM_iter_as_arrayN(BMesh *bm, const char itype, void *data, int *r_len) +#ifdef __GNUC__ +__attribute__((warn_unused_result)) +#endif +; +int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value); +int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value); /* private for bmesh_iterators_inline.c */ void bmiter__vert_of_mesh_begin(struct BMIter *iter); |