From f59ff9e03a633f64f9587eb67eee7913fed685a8 Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Thu, 11 Mar 2021 13:14:22 +0100 Subject: Fix crash when showing NLA actions in the Outliner Caused by 2e221de4ceee in combination with 4292bb060d59. In the former I forgot to set the name for NLA actions in the new code design, in the latter I made it an assumtion that tree element types using the new design set the name. The following commit will make this assumption explicit with an assert. --- source/blender/editors/space_outliner/tree/tree_element.cc | 2 +- source/blender/editors/space_outliner/tree/tree_element_nla.cc | 4 +++- source/blender/editors/space_outliner/tree/tree_element_nla.hh | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/space_outliner/tree/tree_element.cc b/source/blender/editors/space_outliner/tree/tree_element.cc index 25bd9a53cf8..116a2e4d3c3 100644 --- a/source/blender/editors/space_outliner/tree/tree_element.cc +++ b/source/blender/editors/space_outliner/tree/tree_element.cc @@ -52,7 +52,7 @@ static AbstractTreeElement *tree_element_create(int type, TreeElement &legacy_te case TSE_NLA_TRACK: return new TreeElementNLATrack(legacy_te, *static_cast(idv)); case TSE_NLA_ACTION: - return new TreeElementNLAAction(legacy_te); + return new TreeElementNLAAction(legacy_te, *static_cast(idv)); case TSE_GP_LAYER: return new TreeElementGPencilLayer(legacy_te, *static_cast(idv)); case TSE_R_LAYER_BASE: diff --git a/source/blender/editors/space_outliner/tree/tree_element_nla.cc b/source/blender/editors/space_outliner/tree/tree_element_nla.cc index 5d4ec53e60c..65832e8f981 100644 --- a/source/blender/editors/space_outliner/tree/tree_element_nla.cc +++ b/source/blender/editors/space_outliner/tree/tree_element_nla.cc @@ -70,9 +70,11 @@ void TreeElementNLATrack::expand(SpaceOutliner &space_outliner) const /* -------------------------------------------------------------------- */ -TreeElementNLAAction::TreeElementNLAAction(TreeElement &legacy_te) : AbstractTreeElement(legacy_te) +TreeElementNLAAction::TreeElementNLAAction(TreeElement &legacy_te, const bAction &action) + : AbstractTreeElement(legacy_te) { BLI_assert(legacy_te.store_elem->type == TSE_NLA_ACTION); + legacy_te.name = action.id.name + 2; } } // namespace blender::ed::outliner diff --git a/source/blender/editors/space_outliner/tree/tree_element_nla.hh b/source/blender/editors/space_outliner/tree/tree_element_nla.hh index c94287ce576..7cbc8689483 100644 --- a/source/blender/editors/space_outliner/tree/tree_element_nla.hh +++ b/source/blender/editors/space_outliner/tree/tree_element_nla.hh @@ -46,7 +46,7 @@ class TreeElementNLATrack final : public AbstractTreeElement { class TreeElementNLAAction final : public AbstractTreeElement { public: - TreeElementNLAAction(TreeElement &legacy_te); + TreeElementNLAAction(TreeElement &legacy_te, const bAction &action); }; } // namespace blender::ed::outliner -- cgit v1.2.3