[Bf-blender-cvs] [5904953d221] master: Tests: IO, fixed a memory leak in the USDHierarchyIteratorTest

Sybren A. Stüvel noreply at git.blender.org
Tue Jul 21 14:28:13 CEST 2020


Commit: 5904953d221868ca12b361f7b8f81395440bfb87
Author: Sybren A. Stüvel
Date:   Tue Jul 21 14:10:34 2020 +0200
Branches: master
https://developer.blender.org/rB5904953d221868ca12b361f7b8f81395440bfb87

Tests: IO, fixed a memory leak in the USDHierarchyIteratorTest

No functional changes to Blender.

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

M	source/blender/io/common/intern/abstract_hierarchy_iterator.cc
M	source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc

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

diff --git a/source/blender/io/common/intern/abstract_hierarchy_iterator.cc b/source/blender/io/common/intern/abstract_hierarchy_iterator.cc
index 8c9245ef9b0..8e66c069e18 100644
--- a/source/blender/io/common/intern/abstract_hierarchy_iterator.cc
+++ b/source/blender/io/common/intern/abstract_hierarchy_iterator.cc
@@ -149,6 +149,12 @@ AbstractHierarchyIterator::AbstractHierarchyIterator(Depsgraph *depsgraph)
 
 AbstractHierarchyIterator::~AbstractHierarchyIterator()
 {
+  /* release_writers() cannot be called here directly, as it calls into the pure-virtual
+   * release_writer() function. By the time this destructor is called, the subclass that implements
+   * that pure-virtual function is already destructed. */
+  BLI_assert(
+      writers_.empty() ||
+      !"release_writers() should be called before the AbstractHierarchyIterator goes out of scope");
 }
 
 void AbstractHierarchyIterator::iterate_and_write()
diff --git a/source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc b/source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc
index ff073416574..2bc7560e177 100644
--- a/source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc
+++ b/source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc
@@ -71,6 +71,7 @@ class TestingHierarchyIterator : public AbstractHierarchyIterator {
   }
   virtual ~TestingHierarchyIterator()
   {
+    release_writers();
   }
 
  protected:



More information about the Bf-blender-cvs mailing list