From 1fa61832ade0e95fccc55d39790d1acf65464af5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 5 Nov 2011 08:50:25 +0000 Subject: [PATCH] gui: Handle incomplete calls. Should fix issue 48. --- gui/apitracecall.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index de5d020..5f2d976 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -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(); -- 2.43.0