X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_writer.cpp;h=1679989d6b11f3eed7da17ca61a6af5c3ceaea40;hb=eb64451efcd8100d02ec89ff2ae6ea2c78c7645b;hp=897c7b159f346423b46a79876981ebf465b7c97c;hpb=00ea41c2384c7b9cc82dd3c68a474d7f82083f5a;p=apitrace diff --git a/common/trace_writer.cpp b/common/trace_writer.cpp index 897c7b1..1679989 100644 --- a/common/trace_writer.cpp +++ b/common/trace_writer.cpp @@ -258,14 +258,18 @@ void Writer::writeBlob(const void *data, size_t size) { } } -void Writer::writeEnum(const EnumSig *sig) { +void Writer::writeEnum(const EnumSig *sig, signed long long value) { _writeByte(trace::TYPE_ENUM); _writeUInt(sig->id); if (!lookup(enums, sig->id)) { - _writeString(sig->name); - Writer::writeSInt(sig->value); + _writeUInt(sig->num_values); + for (unsigned i = 0; i < sig->num_values; ++i) { + _writeString(sig->values[i].name); + writeSInt(sig->values[i].value); + } enums[sig->id] = true; } + writeSInt(value); } void Writer::writeBitmask(const BitmaskSig *sig, unsigned long long value) {