[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30307] trunk/blender/source/blender: Fix #22816: crash in depsgraph loading some 2.49 files, tagging objects for

Brecht Van Lommel brecht at blender.org
Wed Jul 14 11:46:27 CEST 2010


Revision: 30307
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30307
Author:   blendix
Date:     2010-07-14 11:46:26 +0200 (Wed, 14 Jul 2010)

Log Message:
-----------
Fix #22816: crash in depsgraph loading some 2.49 files, tagging objects for
update on load should be done later because it's not known yet which scene
is used with which layers visible before the windows are created.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/windowmanager/intern/wm_files.c

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-07-14 09:40:26 UTC (rev 30306)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-07-14 09:46:26 UTC (rev 30307)
@@ -313,8 +313,6 @@
 
 	/* baseflags, groups, make depsgraph, etc */
 	set_scene_bg(CTX_data_scene(C));
-
-	DAG_on_load_update();
 	
 	MEM_freeN(bfd);
 }
@@ -478,6 +476,9 @@
 	strcpy(G.sce, scestr);
 	G.fileflags= fileflags;
 
+	if(success)
+		DAG_on_load_update();
+
 	return success;
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2010-07-14 09:40:26 UTC (rev 30306)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2010-07-14 09:46:26 UTC (rev 30307)
@@ -2217,7 +2217,7 @@
 		*sce= bmain->scene.first;
 		if(*sce) *lay= (*sce)->lay;
 
-		/* XXX for background mode, we should get the scen
+		/* XXX for background mode, we should get the scene
 		   from somewhere, for the -S option, but it's in
 		   the context, how to get it here? */
 	}
@@ -2248,7 +2248,7 @@
 
 	dag_current_scene_layers(bmain, &scene, &lay);
 
-	if(scene) {
+	if(scene && scene->theDag) {
 		/* derivedmeshes and displists are not saved to file so need to be
 		   remade, tag them so they get remade in the scene update loop,
 		   note armature poses or object matrices are preserved and do not

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2010-07-14 09:40:26 UTC (rev 30306)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2010-07-14 09:46:26 UTC (rev 30307)
@@ -61,6 +61,7 @@
 
 #include "BKE_blender.h"
 #include "BKE_context.h"
+#include "BKE_depsgraph.h"
 #include "BKE_DerivedMesh.h"
 #include "BKE_exotic.h"
 #include "BKE_font.h"
@@ -309,7 +310,9 @@
 //		refresh_interface_font();
 
 		CTX_wm_window_set(C, CTX_wm_manager(C)->windows.first);
+
 		ED_editors_init(C);
+		DAG_on_load_update();
 
 #ifndef DISABLE_PYTHON
 		/* run any texts that were loaded in and flagged as modules */
@@ -389,6 +392,7 @@
 	BKE_write_undo(C, "original");	/* save current state */
 
 	ED_editors_init(C);
+	DAG_on_load_update();
 	
 	WM_event_add_notifier(C, NC_WM|ND_FILEREAD, NULL);
 	CTX_wm_window_set(C, NULL); /* exits queues */





More information about the Bf-blender-cvs mailing list