[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34331] trunk/blender/source/blender/ editors/space_view3d/drawobject.c: Fix for [#25633] Particles display switching causes crash when Velocity disp.

Janne Karhu jhkarh at gmail.com
Sat Jan 15 13:29:23 CET 2011


Revision: 34331
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34331
Author:   jhk
Date:     2011-01-15 12:29:22 +0000 (Sat, 15 Jan 2011)
Log Message:
-----------
Fix for [#25633] Particles display switching causes crash when Velocity disp. ON
* Particle draw data wasn't freed properly in some cases.
* Velocity + circle draw type also crashed due to missing null pointer check.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/drawobject.c

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2011-01-15 12:00:15 UTC (rev 34330)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2011-01-15 12:29:22 UTC (rev 34331)
@@ -3684,6 +3684,11 @@
 		pdd->nd= pdd->ndata;
 		pdd->tot_vec_size= tot_vec_size;
 	}
+	else if(psys->pdd) {
+		psys_free_pdd(psys);
+		MEM_freeN(psys->pdd);
+		pdd = psys->pdd = NULL;
+	}
 
 	if(pdd) {
 		pdd->ma_r = &ma_r;
@@ -3842,7 +3847,7 @@
 			if(drawn) {
 				/* additional things to draw for each particle	*/
 				/* (velocity, size and number)					*/
-				if((part->draw & PART_DRAW_VEL) && pdd->vedata){
+				if((part->draw & PART_DRAW_VEL) && pdd && pdd->vedata){
 					copy_v3_v3(pdd->ved,state.co);
 					pdd->ved += 3;
 					mul_v3_v3fl(vel, state.vel, timestep);




More information about the Bf-blender-cvs mailing list