[Bf-blender-cvs] [f59ff9e03a6] master: Fix crash when showing NLA actions in the Outliner

Julian Eisel noreply at git.blender.org
Thu Mar 11 13:22:24 CET 2021


Commit: f59ff9e03a633f64f9587eb67eee7913fed685a8
Author: Julian Eisel
Date:   Thu Mar 11 13:14:22 2021 +0100
Branches: master
https://developer.blender.org/rBf59ff9e03a633f64f9587eb67eee7913fed685a8

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.

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

M	source/blender/editors/space_outliner/tree/tree_element.cc
M	source/blender/editors/space_outliner/tree/tree_element_nla.cc
M	source/blender/editors/space_outliner/tree/tree_element_nla.hh

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

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<NlaTrack *>(idv));
     case TSE_NLA_ACTION:
-      return new TreeElementNLAAction(legacy_te);
+      return new TreeElementNLAAction(legacy_te, *static_cast<bAction *>(idv));
     case TSE_GP_LAYER:
       return new TreeElementGPencilLayer(legacy_te, *static_cast<bGPDlayer *>(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



More information about the Bf-blender-cvs mailing list