From 7e494785e695d02501df1b8d254ac07fbfcdf3e8 Mon Sep 17 00:00:00 2001 From: buliabyak Date: Sun, 21 Sep 2008 22:24:48 +0000 Subject: [PATCH] on closing and document change, if this was the last view on this document, delete document to free up memory --- src/ui/view/view.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ui/view/view.cpp b/src/ui/view/view.cpp index 75b6c453b..1b498a846 100644 --- a/src/ui/view/view.cpp +++ b/src/ui/view/view.cpp @@ -84,9 +84,6 @@ View::View() */ View::~View() { - if (_doc) { - inkscape_remove_document(_doc); - } _close(); } @@ -101,7 +98,11 @@ void View::_close() { if (_doc) { _document_uri_set_connection.disconnect(); _document_resized_connection.disconnect(); - _doc = 0; + if (inkscape_remove_document(_doc)) { + // this was the last view of this document, so delete it + delete _doc; + } + _doc = NULL; } Inkscape::Verb::delete_all_view (this); @@ -142,7 +143,10 @@ void View::setDocument(SPDocument *doc) { if (_doc) { _document_uri_set_connection.disconnect(); _document_resized_connection.disconnect(); - inkscape_remove_document(_doc); + if (inkscape_remove_document(_doc)) { + // this was the last view of this document, so delete it + delete _doc; + } } inkscape_add_document(doc); -- 2.30.2