[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31904] trunk/blender/source/blender/ editors/armature/editarmature.c: patch [#23221] Merge bone : Within chains : infinite loop

Campbell Barton ideasman42 at gmail.com
Mon Sep 13 09:30:55 CEST 2010


Revision: 31904
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31904
Author:   campbellbarton
Date:     2010-09-13 09:30:11 +0200 (Mon, 13 Sep 2010)

Log Message:
-----------
patch [#23221] Merge bone : Within chains : infinite loop
from Yvon Tanguy (vono)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/editarmature.c

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2010-09-13 06:57:03 UTC (rev 31903)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2010-09-13 07:30:11 UTC (rev 31904)
@@ -3107,8 +3107,8 @@
 	/* step 2a: parent children of in-between bones to newbone */
 	for (chain= chains->first; chain; chain= chain->next) {
 		/* ick: we need to check if parent of each bone in chain is one of the bones in the */
+		short found= 0;
 		for (ebo= chain->data; ebo; ebo= ebo->parent) {
-			short found= 0;
 			
 			/* try to find which bone from the list to be removed, is the parent */
 			for (ebone= end; ebone; ebone= ebone->parent) {
@@ -3124,6 +3124,9 @@
 				break;
 			}
 		}
+		if (found) {
+			break;
+		}
 	}
 	
 	/* step 2b: parent child of end to newbone (child from this chain) */
@@ -3135,6 +3138,9 @@
 		ebone= (ebo == start) ? (NULL) : (ebo->parent);
 		bone_free(arm, ebo);
 	}
+	
+	newbone->flag |= (BONE_ROOTSEL|BONE_TIPSEL|BONE_SELECTED);
+	ED_armature_sync_selection(arm->edbo);
 }
 
 





More information about the Bf-blender-cvs mailing list