diff options
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 1 | ||||
-rw-r--r-- | source/blender/editors/scene/scene_edit.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index cac2aab26dd..a5c3e6e4a43 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3819,6 +3819,7 @@ bool BKE_node_tree_iter_step(struct NodeTreeIterStore *ntreeiter, void BKE_nodetree_remove_layer_n(bNodeTree *ntree, Scene *scene, const int layer_index) { + BLI_assert(layer_index != -1); for (bNode *node = ntree->nodes.first; node; node = node->next) { if (node->type == CMP_NODE_R_LAYERS && (Scene *)node->id == scene) { if (node->custom1 == layer_index) { diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c index 812f9a736bf..d0077df73e4 100644 --- a/source/blender/editors/scene/scene_edit.c +++ b/source/blender/editors/scene/scene_edit.c @@ -186,13 +186,15 @@ bool ED_scene_view_layer_delete( return false; } + /* We need to unset nodetrees before removing the layer, otherwise its index will be -1. */ + view_layer_remove_unset_nodetrees(bmain, scene, layer); + BLI_remlink(&scene->view_layers, layer); BLI_assert(BLI_listbase_is_empty(&scene->view_layers) == false); scene->active_view_layer = 0; ED_workspace_view_layer_unset(bmain, scene, layer, scene->view_layers.first); BKE_workspace_view_layer_remove_references(bmain, layer); - view_layer_remove_unset_nodetrees(bmain, scene, layer); BKE_view_layer_free(layer); |