From 5904953d221868ca12b361f7b8f81395440bfb87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 21 Jul 2020 14:10:34 +0200 Subject: Tests: IO, fixed a memory leak in the USDHierarchyIteratorTest No functional changes to Blender. --- source/blender/io/common/intern/abstract_hierarchy_iterator.cc | 6 ++++++ source/blender/io/common/intern/abstract_hierarchy_iterator_test.cc | 1 + 2 files changed, 7 insertions(+) (limited to 'source') 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: -- cgit v1.2.3