if (!arr)
return;
+ m_array.reserve(arr->values.size());
for (int i = 0; i < arr->values.size(); ++i) {
VariantVisitor vis;
arr->values[i]->visit(vis);
ApiTraceEvent::ApiTraceEvent()
: m_type(ApiTraceEvent::None),
+ m_hasBinaryData(false),
+ m_binaryDataIndex(0),
+ m_state(0),
m_staticText(0)
{
}
ApiTraceEvent::ApiTraceEvent(Type t)
: m_type(t),
+ m_hasBinaryData(false),
+ m_binaryDataIndex(0),
+ m_state(0),
m_staticText(0)
{
}
ApiTraceEvent::~ApiTraceEvent()
{
+ delete m_state;
delete m_staticText;
}
QVariantMap ApiTraceEvent::stateParameters() const
{
- return m_state.parameters();
+ if (m_state) {
+ return m_state->parameters();
+ } else {
+ return QVariantMap();
+ }
}
-ApiTraceState ApiTraceEvent::state() const
+ApiTraceState *ApiTraceEvent::state() const
{
return m_state;
}
-void ApiTraceEvent::setState(const ApiTraceState &state)
+void ApiTraceEvent::setState(ApiTraceState *state)
{
m_state = state;
}
ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame, const Trace::Call *call)
: ApiTraceEvent(ApiTraceEvent::Call),
- m_parentFrame(parentFrame),
- m_hasBinaryData(false),
- m_binaryDataIndex(0)
+ m_parentFrame(parentFrame)
{
ApiTrace *trace = parentTrace();
m_index = call->no;
- QString name = QString::fromStdString(call->sig->name);
- m_signature = trace->signature(name);
+ m_signature = trace->signature(call->sig->id);
if (!m_signature) {
+ QString name = QString::fromStdString(call->sig->name);
QStringList argNames;
argNames.reserve(call->sig->num_args);
for (int i = 0; i < call->sig->num_args; ++i) {
argNames += QString::fromStdString(call->sig->arg_names[i]);
}
m_signature = new ApiTraceCallSignature(name, argNames);
- trace->addSignature(m_signature);
+ trace->addSignature(call->sig->id, m_signature);
}
if (call->ret) {
VariantVisitor retVisitor;