[Bf-blender-cvs] [86dbc9d] master: Cleanup: avoid loop-in-loop when mirror isn't used

Campbell Barton noreply at git.blender.org
Wed Oct 22 11:54:26 CEST 2014


Commit: 86dbc9dd9a0f6426de5431ddab22a9a9da945e63
Author: Campbell Barton
Date:   Wed Oct 22 11:53:10 2014 +0200
Branches: master
https://developer.blender.org/rB86dbc9dd9a0f6426de5431ddab22a9a9da945e63

Cleanup: avoid loop-in-loop when mirror isn't used

Also name 'children' is normally used for a list

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

M	source/blender/editors/transform/transform_conversions.c

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

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 6d6a1ea..16c4a87 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1058,7 +1058,7 @@ void restoreBones(TransInfo *t)
 {
 	bArmature *arm = t->obedit->data;
 	BoneInitData *bid = t->customData;
-	EditBone *ebo, *children;
+	EditBone *ebo;
 
 	while (bid->bone) {
 		ebo = bid->bone;
@@ -1071,19 +1071,23 @@ void restoreBones(TransInfo *t)
 		copy_v3_v3(ebo->head, bid->head);
 		copy_v3_v3(ebo->tail, bid->tail);
 		
-		/* Also move connected children, in case children's name aren't mirrored properly */
-		for (children = arm->edbo->first; children; children = children->next) {
-			if (children->parent == ebo && children->flag & BONE_CONNECTED) {
-				copy_v3_v3(children->head, ebo->tail);
-				children->rad_head = ebo->rad_tail;
+		if (arm->flag & ARM_MIRROR_EDIT) {
+			EditBone *ebo_child;
+
+			/* Also move connected ebo_child, in case ebo_child's name aren't mirrored properly */
+			for (ebo_child = arm->edbo->first; ebo_child; ebo_child = ebo_child->next) {
+				if ((ebo_child->flag & BONE_CONNECTED) && (ebo_child->parent == ebo)) {
+					copy_v3_v3(ebo_child->head, ebo->tail);
+					ebo_child->rad_head = ebo->rad_tail;
+				}
+			}
+
+			/* Also move connected parent, in case parent's name isn't mirrored properly */
+			if ((ebo->flag & BONE_CONNECTED) && ebo->parent) {
+				EditBone *parent = ebo->parent;
+				copy_v3_v3(parent->tail, ebo->head);
+				parent->rad_tail = ebo->rad_head;
 			}
-		}
-		
-		/* Also move connected parent, in case parent's name isn't mirrored properly */
-		if (ebo->parent && ebo->flag & BONE_CONNECTED) {
-			EditBone *parent = ebo->parent;
-			copy_v3_v3(parent->tail, ebo->head);
-			parent->rad_tail = ebo->rad_head;
 		}
 		
 		bid++;




More information about the Bf-blender-cvs mailing list