[Bf-blender-cvs] [82d5905e4b1] master: Cleanup: Use destructor to delete Outliner runtime data

Julian Eisel noreply at git.blender.org
Fri Jan 14 19:28:30 CET 2022


Commit: 82d5905e4b146685ad577f7bb4909535abbb6cd7
Author: Julian Eisel
Date:   Fri Jan 14 19:04:44 2022 +0100
Branches: master
https://developer.blender.org/rB82d5905e4b146685ad577f7bb4909535abbb6cd7

Cleanup: Use destructor to delete Outliner runtime data

Simplifies and makes things safer due to proper RAII usage.

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

M	source/blender/editors/space_outliner/outliner_intern.hh
M	source/blender/editors/space_outliner/space_outliner.cc

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

diff --git a/source/blender/editors/space_outliner/outliner_intern.hh b/source/blender/editors/space_outliner/outliner_intern.hh
index bc6eedb7620..9065f7f9cc1 100644
--- a/source/blender/editors/space_outliner/outliner_intern.hh
+++ b/source/blender/editors/space_outliner/outliner_intern.hh
@@ -66,6 +66,7 @@ struct SpaceOutliner_Runtime {
   SpaceOutliner_Runtime() = default;
   /** Used for copying runtime data to a duplicated space. */
   SpaceOutliner_Runtime(const SpaceOutliner_Runtime &);
+  ~SpaceOutliner_Runtime();
 };
 
 typedef enum TreeElementInsertType {
diff --git a/source/blender/editors/space_outliner/space_outliner.cc b/source/blender/editors/space_outliner/space_outliner.cc
index a8068bc9b71..ea07f1d4611 100644
--- a/source/blender/editors/space_outliner/space_outliner.cc
+++ b/source/blender/editors/space_outliner/space_outliner.cc
@@ -57,6 +57,13 @@ SpaceOutliner_Runtime::SpaceOutliner_Runtime(const SpaceOutliner_Runtime & /*oth
 {
 }
 
+SpaceOutliner_Runtime::~SpaceOutliner_Runtime()
+{
+  if (treehash) {
+    BKE_outliner_treehash_free(treehash);
+  }
+}
+
 static void outliner_main_region_init(wmWindowManager *wm, ARegion *region)
 {
   ListBase *lb;
@@ -366,13 +373,7 @@ static void outliner_free(SpaceLink *sl)
     BLI_mempool_destroy(space_outliner->treestore);
   }
 
-  if (space_outliner->runtime) {
-    space_outliner->runtime->tree_display = nullptr;
-    if (space_outliner->runtime->treehash) {
-      BKE_outliner_treehash_free(space_outliner->runtime->treehash);
-    }
-    MEM_freeN(space_outliner->runtime);
-  }
+  MEM_delete(space_outliner->runtime);
 }
 
 /* spacetype; init callback */



More information about the Bf-blender-cvs mailing list