]> git.cworth.org Git - apitrace/commitdiff
Plugging some memory leaks
authorZack Rusin <zack@kde.org>
Sun, 24 Apr 2011 21:47:34 +0000 (17:47 -0400)
committerZack Rusin <zack@kde.org>
Sun, 24 Apr 2011 21:47:34 +0000 (17:47 -0400)
gui/mainwindow.cpp
trace_parser.cpp

index b258df77515853cf11c762208e31e4eeeadc8c74..1b4de12b6f35c2c7094334b266e73af1d8e22ea4 100644 (file)
@@ -306,6 +306,11 @@ void MainWindow::lookupState()
 
 MainWindow::~MainWindow()
 {
+    delete m_trace;
+    m_trace = 0;
+
+    delete m_proxyModel;
+    delete m_model;
 }
 
 static void
index eb770d3ff1ac47dc21ceacae2c18de37fedbe11e..a63a31f2b195f2cd12470dcccfd473eb79021b37 100644 (file)
@@ -65,12 +65,34 @@ bool Parser::open(const char *filename) {
     return true;
 }
 
+template <typename Iter>
+inline void
+deleteAll(Iter begin, Iter end)
+{
+    while (begin != end) {
+        delete *begin;
+        ++begin;
+    }
+}
+
+template <typename Container>
+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);
 }