]> git.cworth.org Git - apitrace/blobdiff - gui/apitrace.cpp
Save more memory.
[apitrace] / gui / apitrace.cpp
index f3b95dc13c58e979e05b59da1998318da0dec5f9..a290006eff5c060d1712a57615b3bb92bf8e9c7d 100644 (file)
@@ -212,10 +212,10 @@ ApiTraceCall * ApiTrace::callWithIndex(int idx) const
 ApiTraceState ApiTrace::defaultState() const
 {
     ApiTraceFrame *frame = frameAt(0);
-    if (!frame)
+    if (!frame || !frame->hasState())
         return ApiTraceState();
 
-    return frame->state();
+    return *frame->state();
 }
 
 void ApiTrace::callEdited(ApiTraceCall *call)
@@ -289,14 +289,19 @@ bool ApiTrace::hasErrors() const
     return !m_errors.isEmpty();
 }
 
-ApiTraceCallSignature * ApiTrace::signature(const QString &callName)
+ApiTraceCallSignature * ApiTrace::signature(unsigned id)
 {
-    return m_signatures[callName];
+    if (id >= m_signatures.count()) {
+        m_signatures.resize(id + 1);
+        return NULL;
+    } else {
+        return m_signatures[id];
+    }
 }
 
-void ApiTrace::addSignature(ApiTraceCallSignature *signature)
+void ApiTrace::addSignature(unsigned id, ApiTraceCallSignature *signature)
 {
-    m_signatures.insert(signature->name(), signature);
+    m_signatures[id] = signature;
 }
 
 #include "apitrace.moc"