diff options
author | Adam <Adam@anope.org> | 2015-07-13 17:59:14 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2015-07-13 17:59:14 -0400 |
commit | ceddb8370c85f5c5319b497a9c4efb578338beed (patch) | |
tree | c43b6a5d4ac515bf4492840b17aa63172a617d71 /src/extensible.cpp | |
parent | 4362f53cc38177039d6f6b86565e73800e7b5390 (diff) |
Unset extensibles on larger objects when they destruct
Some complex extensibles require the full object to still be alive in
their destructors to keep proper bookkeeping
Diffstat (limited to 'src/extensible.cpp')
-rw-r--r-- | src/extensible.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/extensible.cpp b/src/extensible.cpp index 37206f7c1..50a23101a 100644 --- a/src/extensible.cpp +++ b/src/extensible.cpp @@ -24,6 +24,11 @@ ExtensibleBase::~ExtensibleBase() Extensible::~Extensible() { + UnsetExtensibles(); +} + +void Extensible::UnsetExtensibles() +{ while (!extension_items.empty()) (*extension_items.begin())->Unset(this); } |