]> git.cworth.org Git - apitrace/blobdiff - gui/saverthread.cpp
Implement scanning/skipping of fragments of the trace
[apitrace] / gui / saverthread.cpp
index 0c4bd70c626fb2be9c3074ee5be7674bdd6f0d57..5837c9961d92703ade8b0eea4a2bcd423488210d 100644 (file)
@@ -92,16 +92,16 @@ createBitmaskSig(const ApiBitmask &bt, unsigned id)
     ApiBitmask::Signature::const_iterator itr;
 
     Trace::BitmaskSig *sig = new Trace::BitmaskSig();
-    Trace::BitmaskVal *values = new Trace::BitmaskVal[bsig.count()];
+    Trace::BitmaskFlag *flags = new Trace::BitmaskFlag[bsig.count()];
 
     sig->id = id;
-    sig->count = bsig.count();
-    sig->values = values;
+    sig->num_flags = bsig.count();
+    sig->flags = flags;
 
     int i = 0;
     for (itr = bsig.constBegin(); itr != bsig.constEnd(); ++itr, ++i) {
-        values[i].name = qstrdup(itr->first.toLocal8Bit());
-        values[i].value = itr->second;
+        flags[i].name = qstrdup(itr->first.toLocal8Bit());
+        flags[i].value = itr->second;
     }
 
     return sig;
@@ -110,10 +110,10 @@ createBitmaskSig(const ApiBitmask &bt, unsigned id)
 static void
 deleteBitmaskSig(Trace::BitmaskSig *sig)
 {
-    for (int i = 0; i < sig->count; ++i) {
-        delete [] sig->values[i].name;
+    for (int i = 0; i < sig->num_flags; ++i) {
+        delete [] sig->flags[i].name;
     }
-    delete [] sig->values;
+    delete [] sig->flags;
     delete sig;
 }
 
@@ -162,7 +162,7 @@ writeValue(Trace::Writer &writer, const QVariant &var, unsigned &id)
     default:
         if (type == arrayType) {
             ApiArray array = var.value<ApiArray>();
-            QList<QVariant> vals = array.values();
+            QVector<QVariant> vals = array.values();
             writer.beginArray(vals.count());
             foreach(QVariant el, vals) {
                 writer.beginElement();
@@ -173,7 +173,7 @@ writeValue(Trace::Writer &writer, const QVariant &var, unsigned &id)
         } else if (type == bitmaskType) {
             ApiBitmask bm = var.value<ApiBitmask>();
             Trace::BitmaskSig *sig = createBitmaskSig(bm, ++id);
-            writer.writeBitmask(*sig, bm.value());
+            writer.writeBitmask(sig, bm.value());
             deleteBitmaskSig(sig);
         } else if (type == structType) {
             ApiStruct apiStr = var.value<ApiStruct>();
@@ -210,7 +210,7 @@ SaverThread::SaverThread(QObject *parent)
 }
 
 void SaverThread::saveFile(const QString &fileName,
-                           const QList<ApiTraceCall*> &calls)
+                           const QVector<ApiTraceCall*> &calls)
 {
     m_fileName = fileName;
     m_calls = calls;
@@ -226,10 +226,10 @@ void SaverThread::run()
     for (int i = 0; i < m_calls.count(); ++i) {
         ApiTraceCall *call = m_calls[i];
         Trace::FunctionSig *funcSig = createFunctionSig(call, ++id);
-        unsigned callNo = writer.beginEnter(*funcSig);
+        unsigned callNo = writer.beginEnter(funcSig);
         {
             //args
-            QVariantList vars = call->arguments();
+            QVector<QVariant> vars = call->arguments();
             int index = 0;
             foreach(QVariant var, vars) {
                 writer.beginArg(index++);