[Bf-blender-cvs] [e2a827c8486] blender2.8: Fix crash loading without UI, after recent changes.

Brecht Van Lommel noreply at git.blender.org
Wed May 23 18:32:56 CEST 2018


Commit: e2a827c84869bcfaf7b704e6c4d224be8900ef86
Author: Brecht Van Lommel
Date:   Wed May 23 18:04:43 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe2a827c84869bcfaf7b704e6c4d224be8900ef86

Fix crash loading without UI, after recent changes.

===================================================================

M	source/blender/blenloader/intern/readfile.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 6d3f95fa63c..70c898a374e 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2877,19 +2877,29 @@ static void lib_link_workspaces(FileData *fd, Main *bmain)
 		IDP_LibLinkProperty(id->properties, fd);
 		id_us_ensure_real(id);
 
-		for (WorkSpaceDataRelation *relation = workspace->scene_viewlayer_relations.first;
+		for (WorkSpaceDataRelation *relation = workspace->scene_viewlayer_relations.first,
+		     *relation_next = NULL;
 		     relation != NULL;
-		     relation = relation->next)
+		     relation = relation_next)
 		{
+			relation_next = relation->next;
+
 			relation->parent = newlibadr(fd, id->lib, relation->parent);
 			/* relation->value is set in direct_link_workspace_link_scene_data,
 			 * except when loading linked data. */
 			Scene *scene = relation->parent;
-			if (scene->id.lib != NULL) {
-				relation->value = BLI_findstring(&scene->view_layers, relation->value_name, offsetof(ViewLayer, name));
+
+			if (scene) {
+				if (scene->id.lib != NULL) {
+					relation->value = BLI_findstring(&scene->view_layers, relation->value_name, offsetof(ViewLayer, name));
+				}
+				if (relation->value == NULL) {
+					relation->value = scene->view_layers.first;
+				}
 			}
-			if (relation->value == NULL) {
-				relation->value = scene->view_layers.first;
+			else {
+				/* Remove empty relation if scene got lost. */
+				BLI_freelinkN(&workspace->scene_viewlayer_relations, relation);
 			}
 		}



More information about the Bf-blender-cvs mailing list