ModuleParams: remove parent in destructor

This allows for dynamic deletion of children objects (in most cases this
is not used).

Uses ~100B memory.
This commit is contained in:
Beat Küng 2021-09-08 10:05:13 +02:00 committed by Daniel Agar
parent f09b34007e
commit 810d2e9497
1 changed files with 7 additions and 1 deletions

View File

@ -61,9 +61,14 @@ public:
if (parent) {
parent->_children.add(this);
}
_parent = parent;
}
virtual ~ModuleParams() = default;
virtual ~ModuleParams()
{
if (_parent) { _parent->_children.remove(this); }
}
// Disallow copy construction and move assignment.
ModuleParams(const ModuleParams &) = delete;
@ -93,4 +98,5 @@ protected:
private:
/** @list _children The module parameter list of inheriting classes. */
List<ModuleParams *> _children;
ModuleParams *_parent{nullptr};
};