]> git.notmuchmail.org Git - apitrace/commitdiff
gui: Handle incomplete calls.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 5 Nov 2011 08:50:25 +0000 (08:50 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 5 Nov 2011 09:00:53 +0000 (09:00 +0000)
Should fix issue 48.

gui/apitracecall.cpp

index de5d02062a919fc8e97f2adb00291cb0f81d5b71..5f2d9765df1cc44d045703b955c852d6a9ded406 100644 (file)
@@ -101,6 +101,10 @@ plainTextToHTML(const QString & plain, bool multiLine)
 QString
 apiVariantToString(const QVariant &variant, bool multiLine)
 {
+    if (variant.isNull()) {
+        return QLatin1String("?");
+    }
+
     if (variant.userType() == QVariant::Double) {
         return QString::number(variant.toFloat());
     }
@@ -635,12 +639,16 @@ ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame,
     }
     m_argValues.reserve(call->args.size());
     for (int i = 0; i < call->args.size(); ++i) {
-        VariantVisitor argVisitor(loader);
-        call->args[i]->visit(argVisitor);
-        m_argValues.append(argVisitor.variant());
-        if (m_argValues[i].type() == QVariant::ByteArray) {
-            m_hasBinaryData = true;
-            m_binaryDataIndex = i;
+        if (call->args[i]) {
+            VariantVisitor argVisitor(loader);
+            call->args[i]->visit(argVisitor);
+            m_argValues.append(argVisitor.variant());
+            if (m_argValues[i].type() == QVariant::ByteArray) {
+                m_hasBinaryData = true;
+                m_binaryDataIndex = i;
+            }
+        } else {
+            m_argValues.append(QVariant());
         }
     }
     m_argValues.squeeze();