Skip to content

Commit 21560cb

Browse files
committed
dd
1 parent 973b47c commit 21560cb

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

cereal/messaging/messaging.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,25 @@ class PubMaster {
9797
class AlignedBuffer {
9898
public:
9999
kj::ArrayPtr<const capnp::word> align(const char *data, const size_t size) {
100+
size_t word_count = (size + sizeof(capnp::word) - 1) / sizeof(capnp::word);
101+
100102
// Check if data is already aligned
101103
if (reinterpret_cast<uintptr_t>(data) % alignof(capnp::word) == 0) {
102-
size_t word_count = (size + sizeof(capnp::word) - 1) / sizeof(capnp::word);
103104
return kj::ArrayPtr<const capnp::word>((const capnp::word *)data, word_count);
104105
}
105106

106-
// Data is not aligned, perform alignment
107-
size_t word_count = (size + sizeof(capnp::word) - 1) / sizeof(capnp::word);
107+
// Data is not aligned, perform alignment
108108
if (aligned_buf.size() < word_count) {
109109
aligned_buf = kj::heapArray<capnp::word>(std::max(word_count, size_t(512)));
110110
}
111111
memcpy(aligned_buf.begin(), data, size);
112112
return aligned_buf.slice(0, word_count);
113113
}
114+
114115
inline kj::ArrayPtr<const capnp::word> align(Message *m) {
115116
return align(m->getData(), m->getSize());
116117
}
118+
117119
private:
118120
kj::Array<capnp::word> aligned_buf;
119121
};

0 commit comments

Comments
 (0)