[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