]> git.cworth.org Git - apitrace/blobdiff - gui/traceloader.cpp
Make sure we reset the state when loading another trace file
[apitrace] / gui / traceloader.cpp
index 0fee815ff6a811bbac9a58e9099453de6aa71fa5..cf9b37bb4f9485d292f854469e9daf3aa6733886 100644 (file)
@@ -38,6 +38,16 @@ void TraceLoader::loadTrace(const QString &filename)
         loadHelpFile();
     }
 
+    if (!m_frameBookmarks.isEmpty()) {
+        qDeleteAll(m_signatures);
+        qDeleteAll(m_enumSignatures);
+        m_signatures.clear();
+        m_enumSignatures.clear();
+        m_frameBookmarks.clear();
+        m_createdFrames.clear();
+        m_parser.close();
+    }
+
     if (!m_parser.open(filename.toLatin1())) {
         qDebug() << "error: failed to open " << filename;
         return;
@@ -51,7 +61,6 @@ void TraceLoader::loadTrace(const QString &filename)
         //Load the entire file into memory
         parseTrace();
     }
-
     emit finishedParsing();
 }