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:
authorJulian Eisel <eiseljulian@gmail.com>2017-06-09 18:16:39 +0300
committerJulian Eisel <eiseljulian@gmail.com>2017-06-09 18:17:28 +0300
commit2bb004e03d11e7d7a0f930ecad66c1d3b744eb39 (patch)
treebb5ca923e1a5b6f88ceec1dd131b01925dcb6ff1 /source/blender/blenkernel/intern/layer.c
parentf35df9a25adec35a384ba45c5b2b2d5767e7e87d (diff)
Fix crash when deleting active workspace render-layer
Also fixes some failing unit-tests for render-layers.
Diffstat (limited to 'source/blender/blenkernel/intern/layer.c')
-rw-r--r--source/blender/blenkernel/intern/layer.c35
1 files changed, 3 insertions, 32 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index b088c7b4745..d600f753d75 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -128,39 +128,8 @@ SceneLayer *BKE_scene_layer_add(Scene *scene, const char *name)
return sl;
}
-bool BKE_scene_layer_remove(Main *bmain, Scene *scene, SceneLayer *sl)
-{
- const int act = BLI_findindex(&scene->render_layers, sl);
-
- if (act == -1) {
- return false;
- }
- else if ( (scene->render_layers.first == scene->render_layers.last) &&
- (scene->render_layers.first == sl))
- {
- /* ensure 1 layer is kept */
- return false;
- }
-
- BLI_remlink(&scene->render_layers, sl);
-
- BKE_scene_layer_free(sl);
- MEM_freeN(sl);
-
- scene->active_layer = 0;
- /* TODO WORKSPACE: set active_layer to 0 */
-
- for (Scene *sce = bmain->scene.first; sce; sce = sce->id.next) {
- if (sce->nodetree) {
- BKE_nodetree_remove_layer_n(sce->nodetree, scene, act);
- }
- }
-
- return true;
-}
-
/**
- * Free (or release) any data used by this SceneLayer (does not free the SceneLayer itself).
+ * Free (or release) any data used by this SceneLayer.
*/
void BKE_scene_layer_free(SceneLayer *sl)
{
@@ -200,6 +169,8 @@ void BKE_scene_layer_free(SceneLayer *sl)
BLI_freelistN(&sl->drawdata);
MEM_SAFE_FREE(sl->stats);
+
+ MEM_freeN(sl);
}
/**