]> git.cworth.org Git - apitrace/blobdiff - gui/mainwindow.cpp
Fix and cleanup state lookups on frames.
[apitrace] / gui / mainwindow.cpp
index 9e7fbad9994e0934a81d5e0d5f58214c43e1dec4..2974f31228af14fa2c7d91fcf1172769491ee7fe 100644 (file)
@@ -268,7 +268,7 @@ void MainWindow::replayTrace(bool dumpState)
                 qDebug()<<"tried to get a state for an empty frame";
                 return;
             }
-            index = frame->calls().first()->index();
+            index = frame->lastCallIndex();
         } else {
             qDebug()<<"Unknown event type";
             return;
@@ -873,11 +873,16 @@ void MainWindow::fillState(bool nonDefaults)
             m_ui.nonDefaultsCB->blockSignals(false);
             ApiTraceFrame *firstFrame =
                 m_trace->frameAt(0);
-            ApiTraceEvent *oldSelected = m_selectedEvent;
             if (!firstFrame)
                 return;
+            if (!firstFrame->loaded()) {
+                m_trace->loadFrame(firstFrame);
+                return;
+            }
+            ApiTraceCall *firstCall = firstFrame->calls().first();
+            ApiTraceEvent *oldSelected = m_selectedEvent;
             m_nonDefaultsLookupEvent = m_selectedEvent;
-            m_selectedEvent = firstFrame;
+            m_selectedEvent = firstCall;
             lookupState();
             m_selectedEvent = oldSelected;
         }