X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Ftraceloader.cpp;h=7cb07f00aa1331e814c6d7025deffe76498a36fc;hb=48412ffde3dd4710c96d5e8d9cfdf1789e4d703a;hp=9480f459e015505e79266843e0f2d80ae2568ffb;hpb=851d0b0452234ace66a511327bd8e6f9d68fe9e9;p=apitrace diff --git a/gui/traceloader.cpp b/gui/traceloader.cpp index 9480f45..7cb07f0 100644 --- a/gui/traceloader.cpp +++ b/gui/traceloader.cpp @@ -7,7 +7,7 @@ #define FRAMES_TO_CACHE 100 static ApiTraceCall * -apiCallFromTraceCall(const Trace::Call *call, +apiCallFromTraceCall(const trace::Call *call, const QHash &helpHash, ApiTraceFrame *frame, TraceLoader *loader) @@ -28,6 +28,8 @@ TraceLoader::TraceLoader(QObject *parent) TraceLoader::~TraceLoader() { m_parser.close(); + qDeleteAll(m_signatures); + qDeleteAll(m_enumSignatures); } void TraceLoader::loadTrace(const QString &filename) @@ -36,21 +38,29 @@ 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; } - qDebug()<<"load trace with "<