X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fsaverthread.cpp;h=4ad83c5876c5caf1267d80cc8c8029bdc18b7c93;hb=ff6dad3ca0f52fb91b5035843df7da79126291e1;hp=54ef5d24a82840b85d2d4bbf42e5e0f5df8304b1;hpb=2ae3c962d308ceb866f7478866cdcc85f50a987d;p=apitrace diff --git a/gui/saverthread.cpp b/gui/saverthread.cpp index 54ef5d2..4ad83c5 100644 --- a/gui/saverthread.cpp +++ b/gui/saverthread.cpp @@ -189,11 +189,7 @@ writeValue(trace::Writer &writer, const QVariant &var, unsigned &id) deleteStructSig(str); } else if (type == pointerType) { ApiPointer apiPtr = var.value(); - //writer.beginArray(1); - //writer.beginElement(); - writer.writeOpaque((const void*)apiPtr.value()); - //writer.endElement(); - //writer.endArray(); + writer.writePointer(apiPtr.value()); } else if (type == enumType) { ApiEnum apiEnum = var.value(); trace::EnumSig *sig = createEnumSig(apiEnum, ++id); @@ -251,7 +247,10 @@ public: virtual void visit(trace::String *node) { QString str = m_variant.toString(); - m_editedValue = new trace::String(str.toLocal8Bit().constData()); + char *newString = new char[str.length() + 1]; + QByteArray ba = str.toLocal8Bit(); + strcpy(newString, ba.constData()); + m_editedValue = new trace::String(newString); } virtual void visit(trace::Enum *e) @@ -277,7 +276,6 @@ public: trace::Array *newArray = new trace::Array(vals.count()); for (int i = 0; i < vals.count(); ++i) { EditVisitor visitor(vals[i]); - array->values[i]->visit(visitor); if (array->values[i] == visitor.value()) { //non-editabled @@ -286,7 +284,7 @@ public: return; } - newArray->values.push_back(visitor.value()); + newArray->values[i] = visitor.value(); } m_editedValue = newArray; }