From 1b4bd1c84e404261e267b9cba44fcff20914de6c Mon Sep 17 00:00:00 2001 From: Luca Rood Date: Fri, 30 Jun 2017 12:32:18 +0200 Subject: Fix T51118: Outliner crash when unlinking collection The outliner tree was not being rebuilt after unlinking a collection, and thus a dangling pointer to the collection was kept in the tree. --- source/blender/editors/space_outliner/outliner_collections.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender/editors/space_outliner/outliner_collections.c') diff --git a/source/blender/editors/space_outliner/outliner_collections.c b/source/blender/editors/space_outliner/outliner_collections.c index 315a3af1898..2db87df8809 100644 --- a/source/blender/editors/space_outliner/outliner_collections.c +++ b/source/blender/editors/space_outliner/outliner_collections.c @@ -216,6 +216,7 @@ static int collection_unlink_poll(bContext *C) static int collection_unlink_exec(bContext *C, wmOperator *op) { LayerCollection *lc = outliner_collection_active(C); + SpaceOops *soops = CTX_wm_space_outliner(C); if (lc == NULL) { BKE_report(op->reports, RPT_ERROR, "Active element is not a collection"); @@ -225,6 +226,10 @@ static int collection_unlink_exec(bContext *C, wmOperator *op) SceneLayer *sl = CTX_data_scene_layer(C); BKE_collection_unlink(sl, lc); + if (soops) { + outliner_cleanup_tree(soops); + } + DEG_relations_tag_update(CTX_data_main(C)); /* TODO(sergey): Use proper flag for tagging here. */ -- cgit v1.2.3