Stop stripping the size prefix off
This turns out to be super dangerous to do. A flatbuffer is aligned
assuming that the size is either there or not there. By removing it,
you break alignment.
This necesitates having 2 subclasses of Flatbuffer. A SizePrefixed
version and a non size prefixed version. That lets us distinguish for
methods which care.
Once all that's done, deal with the fallout through the code base,
including logfile_utils and the chaos that causes rippling out.
Change-Id: I91b7be355279a1c19e5c956c33359df01a17eacf
diff --git a/aos/events/logging/log_namer.cc b/aos/events/logging/log_namer.cc
index 411e666..ec60143 100644
--- a/aos/events/logging/log_namer.cc
+++ b/aos/events/logging/log_namer.cc
@@ -32,7 +32,7 @@
const Node *node) {
CHECK_EQ(node, this->node());
UpdateHeader(header, uuid_, part_number_);
- data_writer_->QueueSpan(header->full_span());
+ data_writer_->QueueSpan(header->span());
}
DetachedBufferWriter *LocalLogNamer::MakeWriter(const Channel *channel) {
@@ -48,7 +48,7 @@
++part_number_;
*data_writer_ = std::move(*OpenDataWriter());
UpdateHeader(header, uuid_, part_number_);
- data_writer_->QueueSpan(header->full_span());
+ data_writer_->QueueSpan(header->span());
}
DetachedBufferWriter *LocalLogNamer::MakeTimestampWriter(
@@ -88,14 +88,14 @@
OpenDataWriter();
}
UpdateHeader(header, data_writer_.uuid, data_writer_.part_number);
- data_writer_.writer->QueueSpan(header->full_span());
+ data_writer_.writer->QueueSpan(header->span());
} else {
for (std::pair<const Channel *const, DataWriter> &data_writer :
data_writers_) {
if (node == data_writer.second.node) {
UpdateHeader(header, data_writer.second.uuid,
data_writer.second.part_number);
- data_writer.second.writer->QueueSpan(header->full_span());
+ data_writer.second.writer->QueueSpan(header->span());
}
}
}
@@ -110,7 +110,7 @@
}
OpenDataWriter();
UpdateHeader(header, data_writer_.uuid, data_writer_.part_number);
- data_writer_.writer->QueueSpan(header->full_span());
+ data_writer_.writer->QueueSpan(header->span());
} else {
for (std::pair<const Channel *const, DataWriter> &data_writer :
data_writers_) {
@@ -119,7 +119,7 @@
data_writer.second.rotate(data_writer.first, &data_writer.second);
UpdateHeader(header, data_writer.second.uuid,
data_writer.second.part_number);
- data_writer.second.writer->QueueSpan(header->full_span());
+ data_writer.second.writer->QueueSpan(header->span());
}
}
}