[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