[Bf-blender-cvs] [88ae0be] master: Fix T39758: Blender Crash when removing pinned Scene.

Bastien Montagne noreply at git.blender.org
Thu Apr 17 10:49:44 CEST 2014


Commit: 88ae0be1c41bde777577cd9b08c6b963fbca7e0c
Author: Bastien Montagne
Date:   Thu Apr 17 10:48:32 2014 +0200
https://developer.blender.org/rB88ae0be1c41bde777577cd9b08c6b963fbca7e0c

Fix T39758: Blender Crash when removing pinned Scene.

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

M	source/blender/blenkernel/intern/scene.c

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

diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index a81f9c4..7854395 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -743,6 +743,13 @@ static void scene_unlink_space_node(SpaceNode *snode, Scene *sce)
 	}
 }
 
+static void scene_unlink_space_buts(SpaceButs *sbuts, Scene *sce)
+{
+	if (sbuts->pinid == &sce->id) {
+		sbuts->pinid = NULL;
+	}
+}
+
 void BKE_scene_unlink(Main *bmain, Scene *sce, Scene *newsce)
 {
 	Scene *sce1;
@@ -775,8 +782,12 @@ void BKE_scene_unlink(Main *bmain, Scene *sce, Scene *newsce)
 		for (area = screen->areabase.first; area; area = area->next) {
 			SpaceLink *space_link;
 			for (space_link = area->spacedata.first; space_link; space_link = space_link->next) {
-				if (space_link->spacetype == SPACE_NODE)
-					scene_unlink_space_node((SpaceNode *)space_link, sce);
+				switch (space_link->spacetype) {
+					case SPACE_NODE:
+						scene_unlink_space_node((SpaceNode *)space_link, sce);
+					case SPACE_BUTS:
+						scene_unlink_space_buts((SpaceButs *)space_link, sce);
+				}
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list