[Bf-blender-cvs] [b3afbca] master: ListBase API: add utility api funcs for clearing and checking empty
Campbell Barton
noreply at git.blender.org
Fri Feb 7 20:28:36 CET 2014
Commit: b3afbcab8ff2330c1473647be330a3ffe9b11885
Author: Campbell Barton
Date: Sat Feb 8 06:07:10 2014 +1100
https://developer.blender.org/rBb3afbcab8ff2330c1473647be330a3ffe9b11885
ListBase API: add utility api funcs for clearing and checking empty
===================================================================
M source/blender/blenfont/intern/blf_font.c
M source/blender/blenkernel/intern/action.c
M source/blender/blenkernel/intern/anim_sys.c
M source/blender/blenkernel/intern/armature.c
M source/blender/blenkernel/intern/blender.c
M source/blender/blenkernel/intern/bpath.c
M source/blender/blenkernel/intern/constraint.c
M source/blender/blenkernel/intern/context.c
M source/blender/blenkernel/intern/curve.c
M source/blender/blenkernel/intern/deform.c
M source/blender/blenkernel/intern/depsgraph.c
M source/blender/blenkernel/intern/displist.c
M source/blender/blenkernel/intern/fcurve.c
M source/blender/blenkernel/intern/fmodifier.c
M source/blender/blenkernel/intern/freestyle.c
M source/blender/blenkernel/intern/gpencil.c
M source/blender/blenkernel/intern/group.c
M source/blender/blenkernel/intern/implicit.c
M source/blender/blenkernel/intern/ipo.c
M source/blender/blenkernel/intern/key.c
M source/blender/blenkernel/intern/linestyle.c
M source/blender/blenkernel/intern/mask.c
M source/blender/blenkernel/intern/material.c
M source/blender/blenkernel/intern/mball.c
M source/blender/blenkernel/intern/nla.c
M source/blender/blenkernel/intern/node.c
M source/blender/blenkernel/intern/object.c
M source/blender/blenkernel/intern/object_deform.c
M source/blender/blenkernel/intern/object_dupli.c
M source/blender/blenkernel/intern/particle.c
M source/blender/blenkernel/intern/particle_system.c
M source/blender/blenkernel/intern/pointcache.c
M source/blender/blenkernel/intern/report.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenkernel/intern/screen.c
M source/blender/blenkernel/intern/seqcache.c
M source/blender/blenkernel/intern/seqmodifier.c
M source/blender/blenkernel/intern/sequencer.c
M source/blender/blenkernel/intern/sketch.c
M source/blender/blenkernel/intern/smoke.c
M source/blender/blenkernel/intern/text.c
M source/blender/blenkernel/intern/tracking.c
M source/blender/blenlib/BLI_listbase.h
M source/blender/blenlib/intern/BLI_args.c
M source/blender/blenlib/intern/BLI_mempool.c
M source/blender/blenlib/intern/scanfill.c
M source/blender/blenlib/intern/task.c
M source/blender/blenlib/intern/threads.c
M source/blender/blenloader/intern/readblenentry.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/versioning_250.c
M source/blender/blenloader/intern/versioning_260.c
M source/blender/blenloader/intern/versioning_legacy.c
M source/blender/bmesh/intern/bmesh_edgeloop.c
M source/blender/bmesh/intern/bmesh_marking.c
M source/blender/bmesh/intern/bmesh_operators.c
M source/blender/bmesh/intern/bmesh_walkers.c
M source/blender/bmesh/operators/bmo_connect_pair.c
M source/blender/collada/ArmatureExporter.cpp
M source/blender/collada/SceneExporter.cpp
M source/blender/editors/animation/anim_channels_edit.c
M source/blender/editors/animation/anim_filter.c
M source/blender/editors/animation/keyframes_general.c
M source/blender/editors/animation/keyframing.c
M source/blender/editors/animation/keyingsets.c
M source/blender/editors/armature/armature_edit.c
M source/blender/editors/armature/armature_utils.c
M source/blender/editors/armature/editarmature_retarget.c
M source/blender/editors/armature/editarmature_sketch.c
M source/blender/editors/armature/pose_group.c
M source/blender/editors/armature/pose_lib.c
M source/blender/editors/armature/pose_utils.c
M source/blender/editors/curve/editcurve.c
M source/blender/editors/gpencil/editaction_gpencil.c
M source/blender/editors/gpencil/gpencil_edit.c
M source/blender/editors/gpencil/gpencil_undo.c
M source/blender/editors/interface/interface.c
M source/blender/editors/interface/interface_handlers.c
M source/blender/editors/interface/interface_icons.c
M source/blender/editors/interface/interface_layout.c
M source/blender/editors/mask/mask_ops.c
M source/blender/editors/mesh/editmesh_knife.c
M source/blender/editors/mesh/editmesh_select.c
M source/blender/editors/metaball/mball_edit.c
M source/blender/editors/object/object_add.c
M source/blender/editors/object/object_edit.c
M source/blender/editors/object/object_lattice.c
M source/blender/editors/object/object_modifier.c
M source/blender/editors/object/object_select.c
M source/blender/editors/object/object_vgroup.c
M source/blender/editors/physics/particle_edit.c
M source/blender/editors/screen/area.c
M source/blender/editors/screen/screen_edit.c
M source/blender/editors/sculpt_paint/paint_undo.c
M source/blender/editors/sculpt_paint/paint_utils.c
M source/blender/editors/sculpt_paint/paint_vertex.c
M source/blender/editors/sculpt_paint/paint_vertex_proj.c
M source/blender/editors/space_buttons/buttons_texture.c
M source/blender/editors/space_console/space_console.c
M source/blender/editors/space_graph/graph_draw.c
M source/blender/editors/space_graph/graph_edit.c
M source/blender/editors/space_graph/graph_select.c
M source/blender/editors/space_image/image_buttons.c
M source/blender/editors/space_image/image_ops.c
M source/blender/editors/space_nla/nla_channels.c
M source/blender/editors/space_nla/nla_edit.c
M source/blender/editors/space_node/node_add.c
M source/blender/editors/space_node/node_edit.c
M source/blender/editors/space_node/node_relationships.c
M source/blender/editors/space_node/node_templates.c
M source/blender/editors/space_node/space_node.c
M source/blender/editors/space_outliner/outliner_draw.c
M source/blender/editors/space_outliner/outliner_tree.c
M source/blender/editors/space_outliner/space_outliner.c
M source/blender/editors/space_sequencer/sequencer_edit.c
M source/blender/editors/space_time/space_time.c
M source/blender/editors/space_view3d/drawobject.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_ruler.c
M source/blender/editors/space_view3d/view3d_view.c
M source/blender/editors/transform/transform_conversions.c
M source/blender/editors/transform/transform_snap.c
M source/blender/ikplugin/intern/itasc_plugin.cpp
M source/blender/imbuf/intern/cache.c
M source/blender/imbuf/intern/colormanagement.c
M source/blender/imbuf/intern/openexr/openexr_api.cpp
M source/blender/makesrna/intern/rna_animation.c
M source/blender/makesrna/intern/rna_space.c
M source/blender/modifiers/intern/MOD_mask.c
M source/blender/modifiers/intern/MOD_weightvgedit.c
M source/blender/modifiers/intern/MOD_weightvgmix.c
M source/blender/modifiers/intern/MOD_weightvgproximity.c
M source/blender/nodes/composite/nodes/node_composite_image.c
M source/blender/nodes/intern/node_common.c
M source/blender/render/intern/source/envmap.c
M source/blender/render/intern/source/multires_bake.c
M source/blender/render/intern/source/render_result.c
M source/blender/render/intern/source/rendercore.c
M source/blender/windowmanager/intern/wm.c
M source/blender/windowmanager/intern/wm_event_system.c
M source/blender/windowmanager/intern/wm_files.c
M source/blender/windowmanager/intern/wm_keymap.c
M source/blender/windowmanager/intern/wm_operators.c
M source/creator/creator.c
M source/gameengine/Converter/BL_ArmatureObject.cpp
M source/gameengine/VideoTexture/VideoFFmpeg.cpp
===================================================================
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 846c9cc..ac03502 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -701,8 +701,7 @@ static void blf_font_fill(FontBLF *font)
font->flags = 0;
font->dpi = 0;
font->size = 0;
- font->cache.first = NULL;
- font->cache.last = NULL;
+ BLI_listbase_clear(&font->cache);
font->glyph_cache = NULL;
font->blur = 0;
font->max_tex_size = -1;
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 8967df1..3a32cad 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -193,7 +193,7 @@ bAction *BKE_action_copy(bAction *src)
BLI_duplicatelist(&dst->markers, &src->markers);
/* copy F-Curves, fixing up the links as we go */
- dst->curves.first = dst->curves.last = NULL;
+ BLI_listbase_clear(&dst->curves);
for (sfcu = src->curves.first; sfcu; sfcu = sfcu->next) {
/* duplicate F-Curve */
@@ -319,7 +319,7 @@ void action_groups_add_channel(bAction *act, bActionGroup *agrp, FCurve *fcurve)
return;
/* if no channels anywhere, just add to two lists at the same time */
- if (act->curves.first == NULL) {
+ if (BLI_listbase_is_empty(&act->curves)) {
fcurve->next = fcurve->prev = NULL;
agrp->channels.first = agrp->channels.last = fcurve;
@@ -390,8 +390,7 @@ void action_groups_remove_channel(bAction *act, FCurve *fcu)
if (agrp->channels.first == agrp->channels.last) {
if (agrp->channels.first == fcu) {
- agrp->channels.first = NULL;
- agrp->channels.last = NULL;
+ BLI_listbase_clear(&agrp->channels);
}
}
else if (agrp->channels.first == fcu) {
@@ -998,7 +997,7 @@ void BKE_pose_remove_group(Object *ob)
/* now, remove it from the pose */
BLI_freelinkN(&pose->agroups, grp);
pose->active_group--;
- if (pose->active_group < 0 || pose->agroups.first == NULL) {
+ if (pose->active_group < 0 || BLI_listbase_is_empty(&pose->agroups)) {
pose->active_group = 0;
}
}
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index a46b308..5c50b9d 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -273,7 +273,7 @@ AnimData *BKE_copy_animdata(AnimData *adt, const bool do_action)
copy_fcurves(&dadt->drivers, &adt->drivers);
/* don't copy overrides */
- dadt->overrides.first = dadt->overrides.last = NULL;
+ BLI_listbase_clear(&dadt->overrides);
/* return */
return dadt;
@@ -465,7 +465,7 @@ void action_move_fcurves_by_basepath(bAction *srcAct, bAction *dstAct, const cha
/* if group is empty and tagged, then we can remove as this operation
* moved out all the channels that were formerly here
*/
- if (agrp->channels.first == NULL)
+ if (BLI_listbase_is_empty(&agrp->channels))
BLI_freelinkN(&srcAct->groups, agrp);
else
agrp->flag &= ~AGRP_TEMP;
@@ -1900,7 +1900,7 @@ static void nlaevalchan_buffers_accumulate(ListBase *channels, ListBase *tmp_buf
NlaEvalChannel *nec, *necn, *necd;
/* optimize - abort if no channels */
- if (tmp_buffer->first == NULL)
+ if (BLI_listbase_is_empty(tmp_buffer))
return;
/* accumulate results in tmp_channels buffer to the accumulation buffer */
@@ -2308,7 +2308,7 @@ static void animsys_evaluate_nla(ListBase *echannels, PointerRNA *ptr, AnimData
}
/* only continue if there are strips to evaluate */
- if (estrips.first == NULL)
+ if (BLI_listbase_is_empty(&estrips))
return;
@@ -2524,7 +2524,7 @@ void BKE_animsys_evaluate_all_animation(Main *main, Scene *scene, float ctime)
* however, if there are some curves, we will need to make sure that their 'ctime' property gets
* set correctly, so this optimization must be skipped in that case...
*/
- if ((main->action.first == NULL) && (main->curve.first == NULL)) {
+ if (BLI_listbase_is_empty(&main->action) && BLI_listbase_is_empty(&main->curve)) {
if (G.debug & G_DEBUG)
printf("\tNo Actions, so no animation needs to be evaluated...\n");
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 699e713..caec93a 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2537,7 +2537,7 @@ static int minmax_armature(Object *ob, float r_min[3], float r_max[3])
minmax_v3v3_v3(r_min, r_max, pchan->pose_tail);
}
- return (ob->pose->chanbase.first != NULL);
+ return (BLI_listbase_is_empty(&ob->pose->chanbase) == false);
}
static void boundbox_armature(Object *ob, float loc[3], float size[3])
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 2b87a76..ed48bf5 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -204,7 +204,7 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
char mode;
/* 'u' = undo save, 'n' = no UI load */
- if (bfd->main->screen.first == NULL) mode = 'u';
+ if (BLI_listbase_is_empty(&bfd->main->screen)) mode = 'u';
else if (G.fileflags & G_FILE_NO_UI) mode = 'n';
else mode = 0;
diff --git a/source/blender/blenkernel/intern/bpath.c b/source/blender/blenkernel/intern/bpath.c
index b7a6cf4..00fff61 100644
--- a/source/blender/blenkernel/intern/bpath.c
+++ b/source/blender/blenkernel/intern/bpath.c
@@ -755,7 +755,7 @@ void BKE_bpath_list_restore(Main *bmain, const int flag, void *ls_handle)
void BKE_bpath_list_free(void *ls_handle)
{
ListBase *ls = ls_handle;
- BLI_assert(ls->first == NULL); /* assumes we were used */
+ BLI_assert(BLI_listbase_is_empty(ls)); /* assumes we were used */
BLI_freelistN(ls);
MEM_freeN(ls);
}
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 2eca9f3..c14e8dd 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -4490,7 +4490,7 @@ void BKE_copy_constraints(ListBase *dst, const ListBase *src, int do_extern)
{
bConstraint *con, *srccon;
- dst->first = dst->last = NULL;
+ BLI_listbase_clear(dst);
BLI_duplicatelist(dst, src);
for (con = dst->first, srccon = src->first; con && srccon; srccon = srccon->next, con = con->next) {
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 2eb7638..a63807f 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -366,8 +366,7 @@ static int ctx_data_collection_get(const bContext *C, const char *member, ListBa
return 1;
}
- list->first = NULL;
- list->last = NULL;
+ BLI_listbase_clear(list);
return 0;
}
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index c597968..8567a57 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -206,7 +206,7 @@ Curve *BKE_curve_copy(Curve *cu)
int a;
cun = BKE_libblock_copy(&cu->id);
- cun->nurb.first = cun->nurb.last = NULL;
+ BLI_listbase_clear(&cun->nurb);
BKE_nurbList_duplicate(&(cun->nurb), &(cu->nurb));
cun->mat = MEM_dupallocN(cu->mat);
@@ -534,7 +534,7 @@ void BKE_nurbList_free(ListBase *lb)
BKE_nurb_free(nu);
nu = next;
}
- lb->first = lb->last = NULL;
+ BLI_listbase_clear(lb);
}
Nurb *BKE_nurb_duplicate(Nurb *nu)
@@ -1628,7 +1628,7 @@ void BKE_curve_bevel_make(Scene *scene, Object *ob, ListBase *disp, int forRende
int nr, a;
cu = ob->data;
- disp->first = disp->last = NULL;
+ BLI_listbase_clear(disp);
/* if a font object is being edited, then do nothing */
// XXX if ( ob == obedit && ob->type == OB_FONT ) return;
@@ -4039,7 +4039,7 @@ bool BKE_curve_minmax(Curve *cu, bool use_radius, float min[3], float max[3])
for (nu = nurb_lb->first; nu; nu = nu->next)
BKE_nurb_minmax(nu, use_radius, min, max);
- return (nurb_lb->first != NULL);
+ return (BLI_listbase_is_empty(nurb_lb) == false);
}
bool BKE_curve_center_median(Curve *cu, float cent[3])
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index 6ff27e5..82b6dde 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -71,7 +71,7 @@ void defgroup_copy_list(ListBase *outbase, ListBase *inbase)
{
bDeformGroup *defgroup, *defgroupn;
- outbase->first = outbase->last = NULL;
+ BLI_listbase_clear(outbase);
for (defgroup = inbase->first; defgroup; defgroup = defgroup->next) {
defgroupn = defgroup_duplicate(defgroup);
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index 5f4bfc8..af84055 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -1379,7 +1379,7 @@ static void dag_scene_build(Main *bmain, Scene *sce)
ListBase tempbase;
Base *base;
- tempbase.first = tempbase.last = NULL;
+ BLI_listbase_clear(&tempbase);
build_dag(bmain, sce, DAG_RL_ALL_BUT_DATA);
@@ -1941,7 +1941,7 @@ static void dag_object_time_update_flags(Main *bmain, Scene *scene, Object *ob)
break;
case OB_FONT:
cu = ob->data;
- if (cu->nurb.first == NULL && cu->str && cu->vfont)
+ if (BLI_listbase_is_empty(&cu->nurb) && cu->str && cu->vfont)
ob->recalc |= OB_RECALC_DATA;
break;
case OB_LATTICE:
@@ -2078,7 +2078,7 @@ static void dag_current_scene_layers(Main *bmain, ListBase *lb)
wmWindowManager *wm;
wmWindow *win;
- lb->first = lb->last = NULL;
+ BLI_listbase_clear(lb);
/* if we have a windowmanager, look into windows */
if ((wm = bmain->wm.first)) {
@@ -2411,7 +2411,7 @@ void DAG_ids_flush_tagged(Main *bmain)
/* get list of visible scenes and layers */
dag_current_scene_layers(bmain, &listbase);
- if (listbase.first == NULL)
+ if (BLI_listbase_is_empty(&listbase))
return;
/* loop over all ID types */
@@ -2774,7 +2774,7 @@ void DAG_pose_sort(Object *ob)
dag_check_cycle(dag);
/* now we try to sor
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list