[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31517] trunk/blender/source/blender: remove inline loops in a few places

Campbell Barton ideasman42 at gmail.com
Sun Aug 22 16:15:28 CEST 2010


Revision: 31517
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31517
Author:   campbellbarton
Date:     2010-08-22 16:15:28 +0200 (Sun, 22 Aug 2010)

Log Message:
-----------
remove inline loops in a few places
replace with defgroup_find_name() and BLI_findstring()

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_deform.h
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/context.c
    trunk/blender/source/blender/blenkernel/intern/deform.c
    trunk/blender/source/blender/blenkernel/intern/key.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenkernel/intern/property.c
    trunk/blender/source/blender/editors/animation/keyingsets.c
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/mesh/meshtools.c
    trunk/blender/source/blender/editors/object/object_vgroup.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c

Modified: trunk/blender/source/blender/blenkernel/BKE_deform.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_deform.h	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/BKE_deform.h	2010-08-22 14:15:28 UTC (rev 31517)
@@ -42,7 +42,7 @@
 
 void				 defgroup_copy_list(struct ListBase *lb1, struct ListBase *lb2);
 struct bDeformGroup *defgroup_duplicate(struct bDeformGroup *ingroup);
-struct bDeformGroup *defgroup_find_name(struct Object *ob, char *name);
+struct bDeformGroup *defgroup_find_name(struct Object *ob, const char *name);
 int					 defgroup_find_index(struct Object *ob, struct bDeformGroup *dg);
 int					*defgroup_flip_map(struct Object *ob, int use_default);
 int					 defgroup_flip_index(struct Object *ob, int index, int use_default);

Modified: trunk/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/action.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/action.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -368,20 +368,12 @@
 /* Find a group with the given name */
 bActionGroup *action_groups_find_named (bAction *act, const char name[])
 {
-	bActionGroup *grp;
-	
 	/* sanity checks */
 	if (ELEM3(NULL, act, act->groups.first, name) || (name[0] == 0))
 		return NULL;
 		
 	/* do string comparisons */
-	for (grp= act->groups.first; grp; grp= grp->next) {
-		if (strcmp(grp->name, name) == 0)
-			return grp;
-	}
-	
-	/* not found */
-	return NULL;
+	return BLI_findstring(&act->groups, name, offsetof(bActionGroup, name));
 }
 
 /* *************** Pose channels *************** */

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -43,6 +43,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <stddef.h>
 #include <string.h>
 #include <fcntl.h> // for open
 
@@ -640,12 +641,8 @@
 /* go back to the last occurance of name in stack */
 void BKE_undo_name(bContext *C, const char *name)
 {
-	UndoElem *uel;
-	
-	for(uel= undobase.last; uel; uel= uel->prev) {
-		if(strcmp(name, uel->name)==0)
-			break;
-	}
+	UndoElem *uel= BLI_findstring(&undobase, name, offsetof(UndoElem, name));
+
 	if(uel && uel->prev) {
 		curundo= uel->prev;
 		BKE_undo_step(C, 0);

Modified: trunk/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/context.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/context.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -25,6 +25,9 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
+#include <string.h>
+#include <stddef.h>
+
 #include "MEM_guardedalloc.h"
 
 #include "DNA_scene_types.h"
@@ -47,8 +50,6 @@
 #include "BPY_extern.h"
 #endif
 
-#include <string.h>
-
 /* struct */
 
 struct bContext {
@@ -571,13 +572,12 @@
 static void data_dir_add(ListBase *lb, const char *member)
 {
 	LinkData *link;
-
+	
 	if(strcmp(member, "scene") == 0) /* exception */
 		return;
 
-	for(link=lb->first; link; link=link->next)
-		if(strcmp(link->data, member) == 0)
-			return;
+	if(BLI_findstring(lb, member, offsetof(LinkData, data)))
+		return;
 	
 	link= MEM_callocN(sizeof(LinkData), "LinkData");
 	link->data= (void*)member;

Modified: trunk/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/deform.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/deform.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -176,7 +176,7 @@
 }
 
 
-bDeformGroup *defgroup_find_name (Object *ob, char *name)
+bDeformGroup *defgroup_find_name (Object *ob, const char *name)
 {
 	/* return a pointer to the deform group with this name
 	 * or return NULL otherwise.

Modified: trunk/blender/source/blender/blenkernel/intern/key.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/key.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/key.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -50,6 +50,7 @@
 #include "BKE_animsys.h"
 #include "BKE_curve.h"
 #include "BKE_customdata.h"
+#include "BKE_deform.h"
 #include "BKE_global.h"
 #include "BKE_key.h"
 #include "BKE_lattice.h"
@@ -1003,7 +1004,6 @@
 
 static float *get_weights_array(Object *ob, char *vgroup)
 {
-	bDeformGroup *curdef;
 	MDeformVert *dvert= NULL;
 	EditMesh *em= NULL;
 	EditVert *eve;
@@ -1030,11 +1030,8 @@
 	if(dvert==NULL) return NULL;
 	
 	/* find the group (weak loop-in-loop) */
-	for (curdef = ob->defbase.first; curdef; curdef=curdef->next, index++)
-		if (!strcmp(curdef->name, vgroup))
-			break;
-
-	if(curdef) {
+	index= defgroup_name_index(ob, vgroup);
+	if(index >= 0) {
 		float *weights;
 		int i, j;
 		
@@ -1539,15 +1536,9 @@
 /* get the appropriate KeyBlock given a name to search for */
 KeyBlock *key_get_named_keyblock(Key *key, const char name[])
 {
-	KeyBlock *kb;
+	if (key && name)
+		return BLI_findstring(&key->block, name, offsetof(KeyBlock, name));
 	
-	if (key && name) {
-		for (kb= key->block.first; kb; kb= kb->next) {
-			if (strcmp(name, kb->name)==0)
-				return kb;
-		}
-	}
-	
 	return NULL;
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -734,13 +734,7 @@
 /* finds a node based on its name */
 bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name)
 {
-	bNode *node=NULL;
-	
-	for(node= ntree->nodes.first; node; node= node->next) {
-		if (strcmp(name, node->name) == 0)
-			break;
-	}
-	return node;
+	return BLI_findstring(&ntree->nodes, name, offsetof(bNode, name));
 }
 
 /* finds a node based on given socket */

Modified: trunk/blender/source/blender/blenkernel/intern/property.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/property.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/blenkernel/intern/property.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -32,6 +32,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <stddef.h>
 #include <string.h>
 #include <ctype.h>
 
@@ -180,14 +181,7 @@
 
 bProperty *get_ob_property(Object *ob, char *name)
 {
-	bProperty *prop;
-	
-	prop= ob->prop.first;
-	while(prop) {
-		if( strcmp(prop->name, name)==0 ) return prop;
-		prop= prop->next;
-	}
-	return NULL;
+	return BLI_findstring(&ob->prop, name, offsetof(bProperty, name));
 }
 
 void set_ob_property(Object *ob, bProperty *propc)

Modified: trunk/blender/source/blender/editors/animation/keyingsets.c
===================================================================
--- trunk/blender/source/blender/editors/animation/keyingsets.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/editors/animation/keyingsets.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -522,20 +522,12 @@
 /* Find KeyingSet type info given a name */
 KeyingSetInfo *ANIM_keyingset_info_find_named (const char name[])
 {
-	KeyingSetInfo *ksi;
-	
 	/* sanity checks */
 	if ((name == NULL) || (name[0] == 0))
 		return NULL;
 		
 	/* search by comparing names */
-	for (ksi = keyingset_type_infos.first; ksi; ksi = ksi->next) {
-		if (strcmp(ksi->idname, name) == 0)
-			return ksi;
-	}
-	
-	/* no matches found */
-	return NULL;
+	return BLI_findstring(&keyingset_type_infos, name, offsetof(KeyingSetInfo, idname));
 }
 
 /* Find builtin KeyingSet by name */

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -486,13 +486,7 @@
 /* checks if an EditBone with a matching name already, returning the matching bone if it exists */
 static EditBone *editbone_name_exists (ListBase *edbo, const char *name)
 {
-	EditBone *eBone;
-	
-	for (eBone=edbo->first; eBone; eBone=eBone->next) {
-		if (!strcmp(name, eBone->name))
-			return eBone;
-	}
-	return NULL;
+	return BLI_findstring(edbo, name, offsetof(EditBone, name));
 }
 
 /* note: there's a unique_bone_name() too! */
@@ -4657,7 +4651,7 @@
 	bArmature *arm= par->data;
 	Bone **bonelist, *bone;
 	bDeformGroup **dgrouplist, **dgroupflip;
-	bDeformGroup *dgroup, *curdg;
+	bDeformGroup *dgroup;
 	bPoseChannel *pchan;
 	Mesh *mesh;
 	Mat4 *bbone = NULL;
@@ -4751,13 +4745,7 @@
 
 			// 0 = don't strip off number extensions
 			flip_side_name(name, dgroup->name, FALSE);
-
-			for (curdg = ob->defbase.first; curdg; curdg=curdg->next) {
-				if (!strcmp(curdg->name, name))
-					break;
-			}
-			
-			dgroupflip[j] = curdg;
+			dgroupflip[j] = defgroup_find_name(ob, name);
 		}
 	}
 
@@ -5514,11 +5502,9 @@
 			}
 			
 			if (modifiers_usesArmature(ob, arm)) { 
-				bDeformGroup *dg;
-				/* bone name in defgroup */
-				for (dg=ob->defbase.first; dg; dg=dg->next) {
-					if (!strcmp(dg->name, oldname))
-					   BLI_strncpy(dg->name, newname, MAXBONENAME);
+				bDeformGroup *dg= defgroup_find_name(ob, oldname);
+				if(dg) {
+					BLI_strncpy(dg->name, newname, MAXBONENAME);
 				}
 			}
 			

Modified: trunk/blender/source/blender/editors/mesh/meshtools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/meshtools.c	2010-08-22 12:59:13 UTC (rev 31516)
+++ trunk/blender/source/blender/editors/mesh/meshtools.c	2010-08-22 14:15:28 UTC (rev 31517)
@@ -55,6 +55,7 @@
 
 #include "BKE_context.h"
 #include "BKE_depsgraph.h"
+#include "BKE_deform.h"
 #include "BKE_DerivedMesh.h"
 #include "BKE_key.h"
 #include "BKE_library.h"
@@ -184,12 +185,7 @@
 			/* Join this object's vertex groups to the base one's */
 			for(dg=base->object->defbase.first; dg; dg=dg->next) {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list