Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJanne Karhu <jhkarh@gmail.com>2011-01-27 15:21:14 +0300
committerJanne Karhu <jhkarh@gmail.com>2011-01-27 15:21:14 +0300
commit8fa9a916395652cab6c4fcebb17be677fd6091d1 (patch)
treee3eb9a430ce5094b100ec5d5ac8c11a0cfa70bb0 /source
parent40b4471de700b4b13131a91a8dc9e87a8a8c8bc5 (diff)
Fixing some clang reported issues in particle code.
* Not really bugs, but some code cleanup and clarification.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/particle.c23
-rw-r--r--source/blender/blenkernel/intern/particle_system.c14
-rw-r--r--source/blender/editors/physics/particle_edit.c22
3 files changed, 32 insertions, 27 deletions
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 61bedb0b230..492b78f7365 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -1469,7 +1469,7 @@ void psys_interpolate_face(MVert *mvert, MFace *mface, MTFace *tface, float (*or
}
else {
VECCOPY(orco, vec);
- if(ornor)
+ if(ornor && nor)
VECCOPY(ornor, nor);
}
}
@@ -1961,7 +1961,7 @@ static void do_kink(ParticleKey *state, ParticleKey *par, float *par_rot, float
{
float y_vec[3]={0.f,1.f,0.f};
float z_vec[3]={0.f,0.f,1.f};
- float vec_one[3], radius, state_co[3];
+ float vec_one[3], state_co[3];
float inp_y, inp_z, length;
if(par_rot) {
@@ -1970,7 +1970,6 @@ static void do_kink(ParticleKey *state, ParticleKey *par, float *par_rot, float
}
mul_v3_fl(par_vec, -1.f);
- radius= normalize_v3_v3(vec_one, par_vec);
inp_y=dot_v3v3(y_vec, vec_one);
inp_z=dot_v3v3(z_vec, vec_one);
@@ -2745,7 +2744,6 @@ void psys_cache_child_paths(ParticleSimulationData *sim, float cfra, int editupd
{
ParticleThread *pthreads;
ParticleThreadContext *ctx;
- /*ParticleCacheKey **cache;*/ /*UNUSED*/
ListBase threads;
int i, totchild, totparent, totthread;
@@ -2764,7 +2762,7 @@ void psys_cache_child_paths(ParticleSimulationData *sim, float cfra, int editupd
totparent= ctx->totparent;
if(editupdate && sim->psys->childcache && totchild == sim->psys->totchildcache) {
- /*cache = sim->psys->childcache;*/ /*UNUSED*/
+ ; /* just overwrite the existing cache */
}
else {
/* clear out old and create new empty path cache */
@@ -3102,6 +3100,7 @@ void psys_cache_edit_paths(Scene *scene, Object *ob, PTCacheEdit *edit, float cf
/* should init_particle_interpolation set this ? */
if(pset->brushtype==PE_BRUSH_WEIGHT){
pind.hkey[0] = NULL;
+ /* pa != NULL since the weight brush is only available for hair */
pind.hkey[1] = pa->hair;
}
@@ -3957,7 +3956,6 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, int p, ParticleKey *
float t, frs_sec = sim->scene->r.frs_sec;
float co[3], orco[3];
float hairmat[4][4];
- /*int totparent = 0;*/ /*UNUSED*/
int totpart = psys->totpart;
int totchild = psys->totchild;
short between = 0, edit = 0;
@@ -3967,11 +3965,8 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, int p, ParticleKey *
float *cpa_fuv; int cpa_num; short cpa_from;
- //if(psys_in_edit_mode(scene, psys)){
- // if((psys->edit_path->flag & PSYS_EP_SHOW_CHILD)==0)
- // totchild=0;
- // edit=1;
- //}
+ /* initialize keys to zero */
+ memset(keys, 0, 4*sizeof(ParticleKey));
t=state->time;
CLAMP(t, 0.0, 1.0);
@@ -4013,12 +4008,6 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, int p, ParticleKey *
t = psys_get_child_time(psys, cpa, -state->time, NULL, NULL);
if(totchild && part->from!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES){
-#if 0 /* totparent is UNUSED */
- totparent=(int)(totchild*part->parents*0.3);
-
- if(G.rendering && part->child_nbr && part->ren_child_nbr)
- totparent*=(float)part->child_nbr/(float)part->ren_child_nbr;
-#endif
/* part->parents could still be 0 so we can't test with totparent */
between=1;
}
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 62bfde601f6..e35504d73d7 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -223,6 +223,15 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart)
newpars= MEM_callocN(totpart*sizeof(ParticleData), "particles");
if(psys->part->phystype == PART_PHYS_BOIDS)
newboids= MEM_callocN(totpart*sizeof(BoidParticle), "boid particles");
+
+ if(ELEM(NULL, newpars, newboids)) {
+ /* allocation error! */
+ if(newpars)
+ MEM_freeN(newpars);
+ if(newboids)
+ MEM_freeN(newboids);
+ return;
+ }
}
if(psys->particles) {
@@ -3402,8 +3411,6 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra)
BoidBrainData bbd;
PARTICLE_P;
float timestep;
- /* current time */
- /* float ctime; */ /*UNUSED*/
/* frame & time changes */
float dfra, dtime;
float birthtime, dietime;
@@ -3412,7 +3419,6 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra)
dfra= cfra - psys->cfra;
timestep = psys_get_timestep(sim);
- /*ctime= cfra*timestep;*/ /*UNUSED*/
dtime= dfra*timestep;
if(dfra<0.0){
@@ -3675,7 +3681,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra))
if( fluidmd && fluidmd->fss) {
FluidsimSettings *fss= fluidmd->fss;
ParticleSettings *part = psys->part;
- ParticleData *pa=0;
+ ParticleData *pa=NULL;
const char *suffix = "fluidsurface_particles_####";
const char *suffix2 = ".gz";
char filename[256];
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c
index 93e652023cf..5cf6864cdc8 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -484,13 +484,10 @@ static int key_inside_test(PEData *data, float co[3])
static int point_is_selected(PTCacheEditPoint *point)
{
KEY_K;
- int sel;
if(point->flag & PEP_HIDE)
return 0;
- sel= 0;
-
LOOP_SELECTED_KEYS {
return 1;
}
@@ -773,6 +770,9 @@ static void PE_mirror_particle(Object *ob, DerivedMesh *dm, ParticleSystem *psys
if(!mpa) {
if(!edit->mirror_cache)
PE_update_mirror_cache(ob, psys);
+
+ if(!edit->mirror_cache)
+ return; /* something went wrong! */
mi= edit->mirror_cache[i];
if(mi == -1)
@@ -847,6 +847,9 @@ static void PE_apply_mirror(Object *ob, ParticleSystem *psys)
if(!edit->mirror_cache)
PE_update_mirror_cache(ob, psys);
+ if(!edit->mirror_cache)
+ return; /* something went wrong */
+
/* we delay settings the PARS_EDIT_RECALC for mirrored particles
* to avoid doing mirror twice */
LOOP_POINTS {
@@ -2080,6 +2083,15 @@ static int remove_tagged_particles(Object *ob, ParticleSystem *psys, int mirror)
if(new_totpart) {
npa= new_pars= MEM_callocN(new_totpart * sizeof(ParticleData), "ParticleData array");
npoint= new_points= MEM_callocN(new_totpart * sizeof(PTCacheEditPoint), "PTCacheEditKey array");
+
+ if(ELEM(NULL, new_pars, new_points)) {
+ /* allocation error! */
+ if(new_pars)
+ MEM_freeN(new_pars);
+ if(new_points)
+ MEM_freeN(new_points);
+ return 0;
+ }
}
pa= psys->particles;
@@ -3246,14 +3258,12 @@ static int brush_add(PEData *data, short number)
ParticleKey key3[3];
KDTreeNearest ptn[3];
int w, maxw;
- float maxd, mind, dd, totw=0.0, weight[3];
+ float maxd, totw=0.0, weight[3];
psys_particle_on_dm(psmd->dm,psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,co1,0,0,0,0,0);
maxw= BLI_kdtree_find_n_nearest(tree,3,co1,NULL,ptn);
maxd= ptn[maxw-1].dist;
- mind= ptn[0].dist;
- dd= maxd - mind;
for(w=0; w<maxw; w++) {
weight[w]= (float)pow(2.0, (double)(-6.0f * ptn[w].dist / maxd));