From a3adde5b296a124ea93f7c404e591b629dd05586 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Sun, 24 Apr 2011 17:47:34 -0400 Subject: [PATCH] Plugging some memory leaks --- gui/mainwindow.cpp | 5 +++++ trace_parser.cpp | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index b258df7..1b4de12 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -306,6 +306,11 @@ void MainWindow::lookupState() MainWindow::~MainWindow() { + delete m_trace; + m_trace = 0; + + delete m_proxyModel; + delete m_model; } static void diff --git a/trace_parser.cpp b/trace_parser.cpp index eb770d3..a63a31f 100644 --- a/trace_parser.cpp +++ b/trace_parser.cpp @@ -65,12 +65,34 @@ bool Parser::open(const char *filename) { return true; } +template +inline void +deleteAll(Iter begin, Iter end) +{ + while (begin != end) { + delete *begin; + ++begin; + } +} + +template +inline void +deleteAll(const Container &c) +{ + deleteAll(c.begin(), c.end()); +} void Parser::close(void) { if (file) { gzclose(file); file = NULL; } + + deleteAll(calls); + deleteAll(functions); + deleteAll(structs); + deleteAll(enums); + deleteAll(bitmasks); } -- 2.43.0