Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-08-18 20:16:13 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-18 20:16:13 +0400
commit27b4b45543c0f7690a1978a60591a0b5c0f1adbb (patch)
tree14c54494059de30d8d4c8a24ec8400b8bcc83ff5 /source/blender/bmesh
parente982e9b04f13be046d194643ed28aaedd6181f3b (diff)
utility functions: BLI_findptr, BLI_rfindptr --- use for finding an item in a linked list by a pointer.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/intern/bmesh_marking.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c
index 8e9a19b54fb..58ccfa79a02 100644
--- a/source/blender/bmesh/intern/bmesh_marking.c
+++ b/source/blender/bmesh/intern/bmesh_marking.c
@@ -31,6 +31,8 @@
* that should be addressed eventually.
*/
+#include <stddef.h>
+
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
@@ -708,28 +710,19 @@ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3])
/* --- macro wrapped funcs --- */
int _bm_select_history_check(BMesh *bm, const BMHeader *ele)
{
- BMEditSelection *ese;
-
- for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == (BMElem *)ele) {
- return TRUE;
- }
- }
-
- return FALSE;
+ return (BLI_findptr(&bm->selected, ele, offsetof(BMEditSelection, ele)) != NULL);
}
int _bm_select_history_remove(BMesh *bm, BMHeader *ele)
{
- BMEditSelection *ese;
- for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == (BMElem *)ele) {
- BLI_freelinkN(&(bm->selected), ese);
- return TRUE;
- }
+ BMEditSelection *ese = BLI_findptr(&bm->selected, ele, offsetof(BMEditSelection, ele));
+ if (ese) {
+ BLI_freelinkN(&bm->selected, ese);
+ return TRUE;
+ }
+ else {
+ return FALSE;
}
-
- return FALSE;
}
void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele)