From c17434303f411267d325f5218e0394e722079402 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 13 Sep 2011 17:58:58 -0400 Subject: [PATCH] Cleanup the code. Frames own the calls. --- gui/apitrace.cpp | 60 +++++--------------------------------------- gui/apitrace.h | 3 --- gui/apitracecall.cpp | 5 ++++ gui/apitracecall.h | 1 + 4 files changed, 12 insertions(+), 57 deletions(-) diff --git a/gui/apitrace.cpp b/gui/apitrace.cpp index a7333aa..6254d2c 100644 --- a/gui/apitrace.cpp +++ b/gui/apitrace.cpp @@ -70,7 +70,6 @@ ApiTrace::~ApiTrace() { m_loaderThread->quit(); m_loaderThread->deleteLater(); - qDeleteAll(m_calls); qDeleteAll(m_frames); delete m_loader; delete m_saver; @@ -102,7 +101,7 @@ bool ApiTrace::isCallAFrameMarker(const ApiTraceCall *call, bool ApiTrace::isEmpty() const { - return m_calls.isEmpty(); + return m_frames.isEmpty(); } QString ApiTrace::fileName() const @@ -148,7 +147,6 @@ void ApiTrace::setFileName(const QString &name) m_fileName = name; m_frames.clear(); - m_calls.clear(); m_errors.clear(); m_editedCalls.clear(); m_needsSaving = false; @@ -159,17 +157,6 @@ void ApiTrace::setFileName(const QString &name) } } -void ApiTrace::setFrameMarker(FrameMarker marker) -{ - if (m_frameMarker != marker) { - emit framesInvalidated(); - - qDeleteAll(m_frames); - m_frames.clear(); - detectFrames(); - } -} - void ApiTrace::addFrames(const QList &frames) { QVector calls; @@ -180,57 +167,21 @@ void ApiTrace::addFrames(const QList &frames) m_frames += frames; - int currentCalls = m_calls.count(); int numNewCalls = 0; foreach(ApiTraceFrame *frame, frames) { frame->setParentTrace(this); numNewCalls += frame->numChildren(); calls += frame->calls(); } - m_calls.reserve(m_calls.count() + calls.count() + 1); - m_calls += calls; - - emit endAddingFrames(); - emit callsAdded(currentCalls, numNewCalls); -} -void ApiTrace::detectFrames() -{ - if (m_calls.isEmpty()) - return; - - emit beginAddingFrames(0, m_frames.count()); - - ApiTraceFrame *currentFrame = 0; - foreach(ApiTraceCall *apiCall, m_calls) { - if (!currentFrame) { - currentFrame = new ApiTraceFrame(this); - currentFrame->number = m_frames.count(); - currentFrame->setLoaded(true); - } - apiCall->setParentFrame(currentFrame); - currentFrame->addCall(apiCall); - if (ApiTrace::isCallAFrameMarker(apiCall, - m_frameMarker)) { - m_frames.append(currentFrame); - currentFrame = 0; - } - } - //last frames won't have markers - // it's just a bunch of Delete calls for every object - // after the last SwapBuffers - if (currentFrame) { - m_frames.append(currentFrame); - currentFrame = 0; - } emit endAddingFrames(); } ApiTraceCall * ApiTrace::callWithIndex(int idx) const { - for (int i = 0; i < m_calls.count(); ++i) { - ApiTraceCall *call = m_calls[i]; - if (call->index() == idx) + for (int i = 0; i < m_frames.count(); ++i) { + ApiTraceCall *call = m_frames[i]->callWithIndex(idx); + if (call) return call; } return NULL; @@ -286,7 +237,8 @@ void ApiTrace::save() QDir dir; emit startedSaving(); dir.mkpath(fi.absolutePath()); - m_saver->saveFile(m_tempFileName, m_calls); + Q_ASSERT(!"saving not implemented"); + m_saver->saveFile(m_tempFileName, QVector()); } void ApiTrace::slotSaved() diff --git a/gui/apitrace.h b/gui/apitrace.h index 060f34a..5cd3fe7 100644 --- a/gui/apitrace.h +++ b/gui/apitrace.h @@ -60,7 +60,6 @@ public: public slots: void setFileName(const QString &name); - void setFrameMarker(FrameMarker marker); void save(); void loadFrame(ApiTraceFrame *frame); void findNext(ApiTraceFrame *frame, @@ -92,7 +91,6 @@ signals: void beginAddingFrames(int oldCount, int numAdded); void endAddingFrames(); - void callsAdded(int oldCount, int numAdded); void beginLoadingFrame(ApiTraceFrame *frame, int numAdded); void endLoadingFrame(ApiTraceFrame *frame); void foundFrameStart(ApiTraceFrame *frame); @@ -121,7 +119,6 @@ private slots: ApiTraceCall *call); private: - void detectFrames(); int callInFrame(int callIdx) const; private: QString m_fileName; diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 4063bf0..8d95f16 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -936,6 +936,11 @@ ApiTraceFrame::ApiTraceFrame(ApiTrace *parentTrace) { } +ApiTraceFrame::~ApiTraceFrame() +{ + qDeleteAll(m_calls); +} + QStaticText ApiTraceFrame::staticText() const { if (m_staticText && !m_staticText->text().isEmpty()) diff --git a/gui/apitracecall.h b/gui/apitracecall.h index 0ca49ba..01dd003 100644 --- a/gui/apitracecall.h +++ b/gui/apitracecall.h @@ -290,6 +290,7 @@ class ApiTraceFrame : public ApiTraceEvent { public: ApiTraceFrame(ApiTrace *parent=0); + ~ApiTraceFrame(); int number; bool isEmpty() const; -- 2.43.0