From 8bed640644f89cefe0edca6eec1ebddbe28d61bf Mon Sep 17 00:00:00 2001 From: bulia byak Date: Sat, 20 Sep 2008 21:02:26 +0000 Subject: fix leak and potential crash by disconnecting on delete (bzr r6854) --- src/selection-describer.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/selection-describer.cpp') diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp index 6d80cfe5c..bd8403054 100644 --- a/src/selection-describer.cpp +++ b/src/selection-describer.cpp @@ -97,10 +97,18 @@ namespace Inkscape { SelectionDescriber::SelectionDescriber(Inkscape::Selection *selection, MessageStack *stack) : _context(stack) { - selection->connectChanged(sigc::mem_fun(*this, &SelectionDescriber::_updateMessageFromSelection)); + _selection_changed_connection = new sigc::connection ( + selection->connectChanged( + sigc::mem_fun(*this, &SelectionDescriber::_updateMessageFromSelection))); _updateMessageFromSelection(selection); } +SelectionDescriber::~SelectionDescriber() +{ + _selection_changed_connection->disconnect(); + delete _selection_changed_connection; +} + void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *selection) { GSList const *items = selection->itemList(); -- cgit v1.2.3