Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-27 12:19:34 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-27 12:19:34 +0400
commit0cd26e6066a071ecd230aa9b865b9223ea4ba13a (patch)
tree2ae4b6387c41e532447f9c6148f69a0a18e2eb7c /source/blender/blenkernel/intern/blender.c
parent9775f1d74301615d7898e70b0e85608d0895b523 (diff)
Fix crash opening .blend file with missing lib linked scene and no local scene.
Diffstat (limited to 'source/blender/blenkernel/intern/blender.c')
-rw-r--r--source/blender/blenkernel/intern/blender.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 40cd5b3d403..03698736459 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -268,7 +268,7 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
G.winpos = bfd->winpos;
G.displaymode = bfd->displaymode;
G.fileflags = bfd->fileflags;
- CTX_wm_manager_set(C, bfd->main->wm.first);
+ CTX_wm_manager_set(C, G.main->wm.first);
CTX_wm_screen_set(C, bfd->curscreen);
CTX_data_scene_set(C, bfd->curscreen->scene);
CTX_wm_area_set(C, NULL);
@@ -278,7 +278,11 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
/* this can happen when active scene was lib-linked, and doesn't exist anymore */
if (CTX_data_scene(C) == NULL) {
- CTX_data_scene_set(C, bfd->main->scene.first);
+ /* in case we don't even have a local scene, add one */
+ if(!G.main->scene.first)
+ BKE_scene_add("Scene");
+
+ CTX_data_scene_set(C, G.main->scene.first);
CTX_wm_screen(C)->scene = CTX_data_scene(C);
curscene = CTX_data_scene(C);
}