summaryrefslogtreecommitdiffstats
path: root/src/selection-describer.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2008-09-20 21:02:26 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2008-09-20 21:02:26 +0000
commit8bed640644f89cefe0edca6eec1ebddbe28d61bf (patch)
tree59e8c013928db76040d11e874d13637571e24eb1 /src/selection-describer.cpp
parentDon't clip mask surface to mask bounding box. (diff)
downloadinkscape-8bed640644f89cefe0edca6eec1ebddbe28d61bf.tar.gz
inkscape-8bed640644f89cefe0edca6eec1ebddbe28d61bf.zip
fix leak and potential crash by disconnecting on delete
(bzr r6854)
Diffstat (limited to 'src/selection-describer.cpp')
-rw-r--r--src/selection-describer.cpp10
1 files changed, 9 insertions, 1 deletions
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();