From: Zack Rusin Date: Sun, 24 Apr 2011 21:47:34 +0000 (-0400) Subject: Plugging some memory leaks X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=a3adde5b296a124ea93f7c404e591b629dd05586;p=apitrace Plugging some memory leaks --- 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); }