From b22f1da59e37ff4ba871fb2d6c72ee3ec87b4c5b Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 30 Nov 2013 09:18:04 -0800 Subject: Fix all leak-at-exit from singletons in Subsurface Subsurface creates a lot of singleton instances on demand, but nothing ever deleted them. Since they are singletons, these memory allocations are technically not leaks. However, they clutter the output in valgrind and other memory analysers, hiding the real issues. The solution is to delete these items at exit. For the models and for gettextFromC, the solution is to use a QScopedPointer, which will delete its payload when it gets destroyed. For the dialogs and other widgets, we can't do that: they need to be deleted before QApplication exits, so we just set the parent in all of them to the main window. Signed-off-by: Thiago Macieira Signed-off-by: Dirk Hohndel --- qt-ui/completionmodels.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'qt-ui/completionmodels.cpp') diff --git a/qt-ui/completionmodels.cpp b/qt-ui/completionmodels.cpp index 31733addb..ed1699a92 100644 --- a/qt-ui/completionmodels.cpp +++ b/qt-ui/completionmodels.cpp @@ -1,11 +1,12 @@ #include "completionmodels.h" #include "dive.h" +#include "mainwindow.h" #define CREATE_SINGLETON(X) \ X* X::instance() \ { \ - static X* self = new X(); \ - return self; \ + static QScopedPointer self(new X()); \ + return self.data(); \ } CREATE_SINGLETON(BuddyCompletionModel); -- cgit v1.2.3-70-g09d2