use drop_and_kill() when connecting Commands to their dependents

This commit is contained in:
Paul Davis 2025-11-11 12:54:37 -07:00
parent 210f58ddb7
commit 751dea75d3
2 changed files with 8 additions and 4 deletions

View file

@ -42,7 +42,9 @@ StatefulDiffCommand::StatefulDiffCommand (std::shared_ptr<StatefulDestructible>
be sure to notify owners of this command.
*/
s->DropReferences.connect_same_thread (*this, std::bind (&Destructible::drop_references, this));
if (!_changes || _changes->empty()) {
s->DropReferences.connect_same_thread (*this, std::bind (Destructible::drop_and_kill, this));
}
}
StatefulDiffCommand::StatefulDiffCommand (std::shared_ptr<StatefulDestructible> s, XMLNode const& n)
@ -63,7 +65,9 @@ StatefulDiffCommand::StatefulDiffCommand (std::shared_ptr<StatefulDestructible>
be sure to notify owners of this command.
*/
s->DropReferences.connect_same_thread (*this, std::bind (&Destructible::drop_references, this));
if (_changes->empty()) {
s->DropReferences.connect_same_thread (*this, std::bind (Destructible::drop_and_kill, this));
}
}
StatefulDiffCommand::~StatefulDiffCommand ()