From 4b465cfc264b5b01ae4c884a9c093ba7245b0062 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Peter=20K=C3=BCmmel?= Date: Sun, 2 Dec 2007 18:39:05 +0000 Subject: [PATCH] fix memory leaks git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21928 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiFontLoader.cpp | 5 +++++ src/frontends/qt4/GuiFontLoader.h | 2 +- src/frontends/qt4/GuiToc.cpp | 13 ++++++++++++- src/frontends/qt4/GuiToc.h | 2 ++ src/frontends/qt4/GuiWorkArea.cpp | 1 + 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/frontends/qt4/GuiFontLoader.cpp b/src/frontends/qt4/GuiFontLoader.cpp index c6757809b3..aaa2d59f0d 100644 --- a/src/frontends/qt4/GuiFontLoader.cpp +++ b/src/frontends/qt4/GuiFontLoader.cpp @@ -224,6 +224,11 @@ void GuiFontLoader::update() } +GuiFontLoader::~GuiFontLoader() +{ + update(); +} + ///////////////////////////////////////////////// diff --git a/src/frontends/qt4/GuiFontLoader.h b/src/frontends/qt4/GuiFontLoader.h index 867ac3dd3c..b48bfd4cfd 100644 --- a/src/frontends/qt4/GuiFontLoader.h +++ b/src/frontends/qt4/GuiFontLoader.h @@ -51,7 +51,7 @@ public: GuiFontLoader(); /// Destructor - virtual ~GuiFontLoader() {} + virtual ~GuiFontLoader(); virtual void update(); virtual bool available(FontInfo const & f); diff --git a/src/frontends/qt4/GuiToc.cpp b/src/frontends/qt4/GuiToc.cpp index 73c6b0331b..78ed45c50f 100644 --- a/src/frontends/qt4/GuiToc.cpp +++ b/src/frontends/qt4/GuiToc.cpp @@ -52,10 +52,21 @@ GuiToc::GuiToc(GuiView & parent, Qt::DockWidgetArea area, Qt::WindowFlags flags) GuiToc::~GuiToc() { + clearTocModels(); delete widget_; } +void GuiToc::clearTocModels() +{ + const unsigned int size = toc_models_.size(); + for (unsigned int i = 0; i < size; ++i) { + delete toc_models_[i]; + } + toc_models_.clear(); +} + + int GuiToc::getTocDepth(int type) { if (type < 0) @@ -134,7 +145,7 @@ bool GuiToc::initialiseParams(string const & data) types_.clear(); type_names_.clear(); - toc_models_.clear(); + clearTocModels(); TocList const & tocs = buffer().masterBuffer()->tocBackend().tocs(); TocList::const_iterator it = tocs.begin(); TocList::const_iterator end = tocs.end(); diff --git a/src/frontends/qt4/GuiToc.h b/src/frontends/qt4/GuiToc.h index e3b3f643f7..f73291f48f 100644 --- a/src/frontends/qt4/GuiToc.h +++ b/src/frontends/qt4/GuiToc.h @@ -72,6 +72,8 @@ private: TocWidget * widget_; /// std::vector toc_models_; + /// + void clearTocModels(); public: /// diff --git a/src/frontends/qt4/GuiWorkArea.cpp b/src/frontends/qt4/GuiWorkArea.cpp index 7fec5d95a7..2c53eb524f 100644 --- a/src/frontends/qt4/GuiWorkArea.cpp +++ b/src/frontends/qt4/GuiWorkArea.cpp @@ -251,6 +251,7 @@ GuiWorkArea::~GuiWorkArea() { buffer_view_->buffer().workAreaManager().remove(this); delete buffer_view_; + delete cursor_; } -- 2.39.2