Commit: 80f7249d09a76b7e045525fa8f78c7d660a8749d
Author: Campbell Barton
Date:   Sun Apr 15 21:45:19 2018 +0200
Branches: master
https://developer.blender.org/rB80f7249d09a76b7e045525fa8f78c7d660a8749d

Cleanup: skip redundant edit-bone select lookups

===================================================================

M       source/blender/editors/armature/armature_edit.c
M       source/blender/editors/space_view3d/view3d_select.c

===================================================================

diff --git a/source/blender/editors/armature/armature_edit.c 
b/source/blender/editors/armature/armature_edit.c
index ccbb2e95fc1..4562329706f 100644
--- a/source/blender/editors/armature/armature_edit.c
+++ b/source/blender/editors/armature/armature_edit.c
@@ -1303,7 +1303,7 @@ static int armature_delete_selected_exec(bContext *C, 
wmOperator *UNUSED(op))
 {
        bArmature *arm;
        EditBone *curBone, *ebone_next;
-       Object *obedit = CTX_data_edit_object(C); // XXX get from context
+       Object *obedit = CTX_data_edit_object(C);
        bool changed = false;
        arm = obedit->data;
 
diff --git a/source/blender/editors/space_view3d/view3d_select.c 
b/source/blender/editors/space_view3d/view3d_select.c
index 22ca3beae0a..d184081b03a 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -1914,7 +1914,6 @@ static int do_meta_box_select(ViewContext *vc, rcti 
*rect, bool select, bool ext
 static int do_armature_box_select(ViewContext *vc, rcti *rect, bool select, 
bool extend)
 {
        bArmature *arm = vc->obedit->data;
-       EditBone *ebone;
        int a;
 
        unsigned int buffer[MAXPICKBUF];
@@ -1923,7 +1922,7 @@ static int do_armature_box_select(ViewContext *vc, rcti 
*rect, bool select, bool
        hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, rect, 
VIEW3D_SELECT_ALL);
        
        /* clear flag we use to detect point was affected */
-       for (ebone = arm->edbo->first; ebone; ebone = ebone->next)
+       for (EditBone *ebone = arm->edbo->first; ebone; ebone = ebone->next)
                ebone->flag &= ~BONE_DONE;
        
        if (extend == false && select)
@@ -1933,17 +1932,17 @@ static int do_armature_box_select(ViewContext *vc, rcti 
*rect, bool select, bool
        for (a = 0; a < hits; a++) {
                int index = buffer[(4 * a) + 3];
                if (index != -1) {
-                       ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                        if ((index & 0xFFFF0000) == 0) {
                                continue;
                        }
+                       EditBone *ebone = BLI_findlink(arm->edbo, index & 
~(BONESEL_ANY));
                        if ((select == false) || ((ebone->flag & 
BONE_UNSELECTABLE) == 0)) {
                                if (index & BONESEL_TIP) {
                                        ebone->flag |= BONE_DONE;
                                        if (select) ebone->flag |= BONE_TIPSEL;
                                        else ebone->flag &= ~BONE_TIPSEL;
                                }
-                               
+
                                if (index & BONESEL_ROOT) {
                                        ebone->flag |= BONE_DONE;
                                        if (select) ebone->flag |= BONE_ROOTSEL;
@@ -1952,27 +1951,30 @@ static int do_armature_box_select(ViewContext *vc, rcti 
*rect, bool select, bool
                        }
                }
        }
-       
+
        /* now we have to flush tag from parents... */
-       for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
+       for (EditBone *ebone = arm->edbo->first; ebone; ebone = ebone->next) {
                if (ebone->parent && (ebone->flag & BONE_CONNECTED)) {
-                       if (ebone->parent->flag & BONE_DONE)
+                       if (ebone->parent->flag & BONE_DONE) {
                                ebone->flag |= BONE_DONE;
+                       }
                }
        }
-       
+
        /* only select/deselect entire bones when no points where in the rect */
        for (a = 0; a < hits; a++) {
                int index = buffer[(4 * a) + 3];
                if (index != -1) {
-                       ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                        if (index & BONESEL_BONE) {
+                               EditBone *ebone = BLI_findlink(arm->edbo, index 
& ~(BONESEL_ANY));
                                if ((select == false) || ((ebone->flag & 
BONE_UNSELECTABLE) == 0)) {
                                        if (!(ebone->flag & BONE_DONE)) {
-                                               if (select)
+                                               if (select) {
                                                        ebone->flag |= 
(BONE_ROOTSEL | BONE_TIPSEL | BONE_SELECTED);
-                                               else
+                                               }
+                                               else {
                                                        ebone->flag &= 
~(BONE_ROOTSEL | BONE_TIPSEL | BONE_SELECTED);
+                                               }
                                        }
                                }
                        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to