[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26749] trunk/blender/source/blender: bugfix [#21055] Python: accessing ParticleEdit. hair causes segmentation violation

Campbell Barton ideasman42 at gmail.com
Tue Feb 9 21:03:05 CET 2010


Revision: 26749
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26749
Author:   campbellbarton
Date:     2010-02-09 21:03:05 +0100 (Tue, 09 Feb 2010)

Log Message:
-----------
bugfix [#21055] Python: accessing ParticleEdit.hair causes segmentation violation

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/physics/particle_edit.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2010-02-09 19:59:07 UTC (rev 26748)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2010-02-09 20:03:05 UTC (rev 26749)
@@ -579,6 +579,7 @@
 		if(sce->id.lib==NULL) {
 			if(sce->camera==ob) sce->camera= NULL;
 			if(sce->toolsettings->skgen_template==ob) sce->toolsettings->skgen_template = NULL;
+			if(sce->toolsettings->particle.object==ob) sce->toolsettings->particle.object= NULL;
 
 #ifdef DURIAN_CAMERA_SWITCH
 			{

Modified: trunk/blender/source/blender/editors/physics/particle_edit.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_edit.c	2010-02-09 19:59:07 UTC (rev 26748)
+++ trunk/blender/source/blender/editors/physics/particle_edit.c	2010-02-09 20:03:05 UTC (rev 26749)
@@ -191,7 +191,7 @@
 
 ParticleEditSettings *PE_settings(Scene *scene)
 {
-	return &scene->toolsettings->particle;
+	return scene->toolsettings ? &scene->toolsettings->particle : NULL;
 }
 
 /* always gets atleast the first particlesystem even if PSYS_CURRENT flag is not set
@@ -205,12 +205,12 @@
 	ListBase pidlist;
 	PTCacheID *pid;
 
+	if(pset==NULL || pset->object==NULL)
+		return NULL;
+
 	pset->scene = scene;
 	pset->object = ob;
 
-	if(ob==NULL)
-		return NULL;
-
 	BKE_ptcache_ids_from_object(&pidlist, ob);
 
 	/* in the case of only one editable thing, set pset->edittype accordingly */





More information about the Bf-blender-cvs mailing list