[Bf-blender-cvs] [e217839fd3] master: Cleanup writefile code a bit.
Bastien Montagne
noreply at git.blender.org
Mon Feb 6 20:48:35 CET 2017
Commit: e217839fd3488e09b83a99372707d6f9a31c7d10
Author: Bastien Montagne
Date: Mon Feb 6 20:42:00 2017 +0100
Branches: master
https://developer.blender.org/rBe217839fd3488e09b83a99372707d6f9a31c7d10
Cleanup writefile code a bit.
Modernize some of it a bit, saves quite some lines of blabla (using
shile instead of for loops... tsssts...).
===================================================================
M source/blender/blenloader/intern/writefile.c
===================================================================
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 7b8b95f000..abdc5fcf67 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -799,22 +799,18 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves)
static void write_actions(WriteData *wd, ListBase *idbase)
{
- bAction *act;
- bActionGroup *grp;
- TimeMarker *marker;
-
- for (act = idbase->first; act; act = act->id.next) {
+ for (bAction *act = idbase->first; act; act = act->id.next) {
if (act->id.us > 0 || wd->current) {
writestruct(wd, ID_AC, bAction, 1, act);
write_iddata(wd, &act->id);
write_fcurves(wd, &act->curves);
- for (grp = act->groups.first; grp; grp = grp->next) {
+ for (bActionGroup *grp = act->groups.first; grp; grp = grp->next) {
writestruct(wd, DATA, bActionGroup, 1, grp);
}
- for (marker = act->markers.first; marker; marker = marker->next) {
+ for (TimeMarker *marker = act->markers.first; marker; marker = marker->next) {
writestruct(wd, DATA, TimeMarker, 1, marker);
}
}
@@ -1280,13 +1276,7 @@ static void write_pointcaches(WriteData *wd, ListBase *ptcaches)
}
static void write_particlesettings(WriteData *wd, ListBase *idbase)
{
- ParticleSettings *part;
- ParticleDupliWeight *dw;
- GroupObject *go;
- int a;
-
- part = idbase->first;
- while (part) {
+ for (ParticleSettings *part = idbase->first; part; part = part->id.next) {
if (part->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_PA, ParticleSettings, 1, part);
@@ -1306,24 +1296,23 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase)
write_curvemapping(wd, part->roughcurve);
}
- dw = part->dupliweights.first;
- for (; dw; dw = dw->next) {
+ for (ParticleDupliWeight *dw = part->dupliweights.first; dw; dw = dw->next) {
/* update indices, but only if dw->ob is set (can be NULL after loading e.g.) */
if (dw->ob != NULL) {
dw->index = 0;
if (part->dup_group) { /* can be NULL if lining fails or set to None */
- for (go = part->dup_group->gobject.first; go && go->ob != dw->ob; go = go->next, dw->index++);
+ for (GroupObject *go = part->dup_group->gobject.first;
+ go && go->ob != dw->ob;
+ go = go->next, dw->index++);
}
}
writestruct(wd, DATA, ParticleDupliWeight, 1, dw);
}
if (part->boids && part->phystype == PART_PHYS_BOIDS) {
- BoidState *state = part->boids->states.first;
-
writestruct(wd, DATA, BoidSettings, 1, part->boids);
- for (; state; state = state->next) {
+ for (BoidState *state = part->boids->states.first; state; state = state->next) {
write_boid_state(wd, state);
}
}
@@ -1331,13 +1320,12 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase)
writestruct(wd, DATA, SPHFluidSettings, 1, part->fluid);
}
- for (a = 0; a < MAX_MTEX; a++) {
+ for (int a = 0; a < MAX_MTEX; a++) {
if (part->mtex[a]) {
writestruct(wd, DATA, MTex, 1, part->mtex[a]);
}
}
}
- part = part->id.next;
}
}
static void write_particlesystems(WriteData *wd, ListBase *particles)
@@ -1835,10 +1823,7 @@ static void write_modifiers(WriteData *wd, ListBase *modbase)
static void write_objects(WriteData *wd, ListBase *idbase)
{
- Object *ob;
-
- ob = idbase->first;
- while (ob) {
+ for (Object *ob = idbase->first; ob; ob = ob->id.next) {
if (ob->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_OB, Object, 1, ob);
@@ -1897,8 +1882,6 @@ static void write_objects(WriteData *wd, ListBase *idbase)
}
write_previews(wd, ob->preview);
-
- ob = ob->id.next;
}
mywrite_flush(wd);
@@ -1907,26 +1890,19 @@ static void write_objects(WriteData *wd, ListBase *idbase)
static void write_vfonts(WriteData *wd, ListBase *idbase)
{
- VFont *vf;
- PackedFile *pf;
-
- vf = idbase->first;
- while (vf) {
+ for (VFont *vf = idbase->first; vf; vf = vf->id.next) {
if (vf->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_VF, VFont, 1, vf);
write_iddata(wd, &vf->id);
/* direct data */
-
if (vf->packedfile) {
- pf = vf->packedfile;
+ PackedFile *pf = vf->packedfile;
writestruct(wd, DATA, PackedFile, 1, pf);
writedata(wd, DATA, pf->size, pf->data);
}
}
-
- vf = vf->id.next;
}
mywrite_flush(wd);
@@ -1935,11 +1911,7 @@ static void write_vfonts(WriteData *wd, ListBase *idbase)
static void write_keys(WriteData *wd, ListBase *idbase)
{
- Key *key;
- KeyBlock *kb;
-
- key = idbase->first;
- while (key) {
+ for (Key *key = idbase->first; key; key = key->id.next) {
if (key->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_KE, Key, 1, key);
@@ -1950,17 +1922,13 @@ static void write_keys(WriteData *wd, ListBase *idbase)
}
/* direct data */
- kb = key->block.first;
- while (kb) {
+ for (KeyBlock *kb = key->block.first; kb; kb = kb->next) {
writestruct(wd, DATA, KeyBlock, 1, kb);
if (kb->data) {
writedata(wd, DATA, kb->totelem * key->elemsize, kb->data);
}
- kb = kb->next;
}
}
-
- key = key->id.next;
}
mywrite_flush(wd);
@@ -1968,10 +1936,7 @@ static void write_keys(WriteData *wd, ListBase *idbase)
static void write_cameras(WriteData *wd, ListBase *idbase)
{
- Camera *cam;
-
- cam = idbase->first;
- while (cam) {
+ for (Camera *cam = idbase->first; cam; cam = cam->id.next) {
if (cam->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_CA, Camera, 1, cam);
@@ -1981,18 +1946,12 @@ static void write_cameras(WriteData *wd, ListBase *idbase)
write_animdata(wd, cam->adt);
}
}
-
- cam = cam->id.next;
}
}
static void write_mballs(WriteData *wd, ListBase *idbase)
{
- MetaBall *mb;
- MetaElem *ml;
-
- mb = idbase->first;
- while (mb) {
+ for (MetaBall *mb = idbase->first; mb; mb = mb->id.next) {
if (mb->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_MB, MetaBall, 1, mb);
@@ -2004,23 +1963,16 @@ static void write_mballs(WriteData *wd, ListBase *idbase)
write_animdata(wd, mb->adt);
}
- ml = mb->elems.first;
- while (ml) {
+ for (MetaElem *ml = mb->elems.first; ml; ml = ml->next) {
writestruct(wd, DATA, MetaElem, 1, ml);
- ml = ml->next;
}
}
- mb = mb->id.next;
}
}
static void write_curves(WriteData *wd, ListBase *idbase)
{
- Curve *cu;
- Nurb *nu;
-
- cu = idbase->first;
- while (cu) {
+ for (Curve *cu = idbase->first; cu; cu = cu->id.next) {
if (cu->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_CU, Curve, 1, cu);
@@ -2039,13 +1991,10 @@ static void write_curves(WriteData *wd, ListBase *idbase)
}
else {
/* is also the order of reading */
- nu = cu->nurb.first;
- while (nu) {
+ for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) {
writestruct(wd, DATA, Nurb, 1, nu);
- nu = nu->next;
}
- nu = cu->nurb.first;
- while (nu) {
+ for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) {
if (nu->type == CU_BEZIER) {
writestruct(wd, DATA, BezTriple, nu->pntsu, nu->bezt);
}
@@ -2058,11 +2007,9 @@ static void write_curves(WriteData *wd, ListBase *idbase)
writedata(wd, DATA, KNOTSV(nu) * sizeof(float), nu->knotsv);
}
}
- nu = nu->next;
}
}
}
- cu = cu->id.next;
}
mywrite_flush(wd);
@@ -2184,15 +2131,13 @@ static void write_customdata(
static void write_meshes(WriteData *wd, ListBase *idbase)
{
- Mesh *mesh;
- bool save_for_old_blender = false;
-
#ifdef USE_BMESH_SAVE_AS_COMPAT
- save_for_old_blender = wd->use_mesh_compat; /* option to save with older mesh format */
+ const bool save_for_old_blender = wd->use_mesh_compat; /* option to save with older mesh format */
+#else
+ const bool save_for_old_blender = false;
#endif
- mesh = idbase->first;
- while (mesh) {
+ for (Mesh *mesh = idbase->first; mesh; mesh = mesh->id.next) {
CustomDataLayer *vlayers = NULL, vlayers_buff[CD_TEMP_CHUNK_SIZE];
CustomDataLayer *elayers = NULL, elayers_buff[CD_TEMP_CHUNK_SIZE];
CustomDataLayer *flayers = NULL, flayers_buff[CD_TEMP_CHUNK_SIZE];
@@ -2336,8 +2281,6 @@ static void write_meshes(WriteData *wd, ListBase *idbase)
if (players && players != players_buff) {
MEM_freeN(players);
}
-
- mesh = mesh->id.next;
}
mywrite_flush(wd);
@@ -2345,10 +2288,7 @@ static void write_meshes(WriteData *wd, ListBase *idbase)
static void write_lattices(WriteData *wd, ListBase *idbase)
{
- Lattice *lt;
-
- lt = idbase->first;
- while (lt) {
+ for (Lattice *lt = idbase->first; lt; lt = lt->id.next) {
if (lt->id.us > 0 || wd->current) {
/* write LibData */
writestruct(wd, ID_LT, Lattice, 1, lt);
@@ -2363,9 +2303,7 @@ static void write_lattices(WriteData *wd, ListBase *idbase)
writestruct(wd, DATA, BPoint, lt->pntsu * lt->pntsv * lt->pntsw, lt->def);
write_dverts(wd, lt->pntsu * lt->pntsv * lt->pntsw, lt->dvert);
-
}
- lt = lt->id.next;
}
mywrite_flush(wd);
@@ -2373,14 +2311,10 @@ static void write_lattices(WriteData *wd, ListBase *idbase)
static void write_images(WriteData *wd, ListBase *idbase)
{
- Image *ima;
- PackedFile *pf;
- ImageView *iv;
- ImagePackedFile *imapf;
-
- ima = idbase->first;
- while (ima) {
+ for (Image *ima = idbase->first; ima; ima = ima->id.next) {
if (ima->id.us > 0 || wd->current) {
+ ImagePackedFile *imapf;
+
/* Some trickery to keep forward compatibility of packed images. */
BLI_assert(ima->packedfile == NULL);
if (ima->packedfiles.first != NULL) {
@@ -2395,7 +2329,7 @@ static void write_images(WriteData *wd, ListBase *idbase)
for (imapf = ima->packedfiles.first; imapf; imapf = imapf->next) {
writestruct(wd, DATA, ImagePackedFile, 1, imapf);
if (imapf->packedfile) {
- pf = imapf->packedfile;
+ PackedFile *pf = imapf->packedfile;
writestruct(wd, DATA, PackedFile, 1, pf);
writedata(wd, DATA, pf->size, pf->data);
}
@@ -2403,14 +2337,13 @@ static void write_images(WriteData *wd, ListBase *idbase)
write_previews(wd, ima->preview);
- for (iv = ima
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list