[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12719] trunk/blender/source/blender/src/ editparticle.c:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Nov 29 14:34:38 CET 2007


Revision: 12719
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12719
Author:   blendix
Date:     2007-11-29 14:34:38 +0100 (Thu, 29 Nov 2007)

Log Message:
-----------

Bugfix:
Particle edit mode option interpolated for the add brush crashed with
no existing particles.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editparticle.c

Modified: trunk/blender/source/blender/src/editparticle.c
===================================================================
--- trunk/blender/source/blender/src/editparticle.c	2007-11-29 13:05:38 UTC (rev 12718)
+++ trunk/blender/source/blender/src/editparticle.c	2007-11-29 13:34:38 UTC (rev 12719)
@@ -1703,10 +1703,10 @@
 			}
 		}
 
-		MEM_freeN(psys->particles);
+		if(psys->particles) MEM_freeN(psys->particles);
 		psys->particles = new_pars;
 
-		MEM_freeN(edit->keys);
+		if(edit->keys) MEM_freeN(edit->keys);
 		edit->keys = new_keys;
 
 		if(edit->mirror_cache) {
@@ -2256,10 +2256,10 @@
 		memcpy(new_keys, edit->keys, totpart * sizeof(ParticleEditKey*));
 
 		/* change old arrays to new ones */
-		MEM_freeN(psys->particles);
+		if(psys->particles) MEM_freeN(psys->particles);
 		psys->particles = new_pars;
 
-		MEM_freeN(edit->keys);
+		if(edit->keys) MEM_freeN(edit->keys);
 		edit->keys = new_keys;
 
 		if(edit->mirror_cache) {
@@ -2267,8 +2267,6 @@
 			edit->mirror_cache = NULL;
 		}
 
-		psys->totpart = newtotpart;
-		
 		/* create tree for interpolation */
 		if(pset->flag & PE_INTERPOLATE_ADDED && psys->totpart){
 			tree=BLI_kdtree_new(psys->totpart);
@@ -2281,6 +2279,8 @@
 			BLI_kdtree_balance(tree);
 		}
 
+		psys->totpart = newtotpart;
+
 		/* create new elements */
 		pa = psys->particles + totpart;
 		key = edit->keys + totpart;
@@ -2691,10 +2691,10 @@
 		memcpy(new_pars, psys->particles, totpart*sizeof(ParticleData));
 		memcpy(new_keys, edit->keys, totpart*sizeof(ParticleEditKey*));
 
-		MEM_freeN(psys->particles);
+		if(psys->particles) MEM_freeN(psys->particles);
 		psys->particles= new_pars;
 
-		MEM_freeN(edit->keys);
+		if(edit->keys) MEM_freeN(edit->keys);
 		edit->keys= new_keys;
 
 		if(edit->mirror_cache) {





More information about the Bf-blender-cvs mailing list