[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38077] trunk/blender/source/blender: fix for crash when setting layers or saving when there is no active scene - only really happens when running python scripts on startup .

Campbell Barton ideasman42 at gmail.com
Mon Jul 4 07:23:37 CEST 2011


Revision: 38077
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38077
Author:   campbellbarton
Date:     2011-07-04 05:23:36 +0000 (Mon, 04 Jul 2011)
Log Message:
-----------
fix for crash when setting layers or saving when there is no active scene - only really happens when running python scripts on startup.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/windowmanager/intern/wm_files.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_object.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object.c	2011-07-04 03:12:28 UTC (rev 38076)
+++ trunk/blender/source/blender/makesrna/intern/rna_object.c	2011-07-04 05:23:36 UTC (rev 38077)
@@ -270,11 +270,16 @@
 static void rna_Object_layer_update__internal(Main *bmain, Scene *scene, Base *base, Object *ob)
 {
 	/* try to avoid scene sort */
-	if((ob->lay & scene->lay) && (base->lay & scene->lay)) {
+	if(scene == NULL) {
+		/* pass - unlikely but when running scripts on startup it happens */
+	}
+	else if((ob->lay & scene->lay) && (base->lay & scene->lay)) {
 		 /* pass */
-	} else if((ob->lay & scene->lay)==0 && (base->lay & scene->lay)==0) {
+	}
+	else if((ob->lay & scene->lay)==0 && (base->lay & scene->lay)==0) {
 		/* pass */
-	} else {
+	}
+	else {
 		DAG_scene_sort(bmain, scene);
 	}
 }
@@ -284,7 +289,7 @@
 	Object *ob= (Object*)ptr->id.data;
 	Base *base;
 
-	base= object_in_scene(ob, scene);
+	base= scene ? object_in_scene(ob, scene) : NULL;
 	if(!base)
 		return;
 	

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2011-07-04 03:12:28 UTC (rev 38076)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2011-07-04 05:23:36 UTC (rev 38077)
@@ -635,8 +635,9 @@
 	char err_out[256]= "unknown";
 
 	*thumb_pt= NULL;
-	
-	if(G.background || scene->camera==NULL)
+
+	/* scene can be NULL if running a script at startup and calling the save operator */
+	if(G.background || scene==NULL || scene->camera==NULL)
 		return NULL;
 
 	/* gets scaled to BLEN_THUMB_SIZE */




More information about the Bf-blender-cvs mailing list