Allow vectors to be aligned beyond their natural type.

Change-Id: I09ade6b688a6b97d65fd832558917225d86c9118
This commit is contained in:
Wouter van Oortmerssen 2015-11-30 11:50:09 -08:00
parent 54dc4395b9
commit fc1cfd287a
1 changed files with 9 additions and 0 deletions

View File

@ -799,6 +799,15 @@ class FlatBufferBuilder FLATBUFFERS_FINAL_CLASS {
PreAlign(len * elemsize, elemsize); // Just in case elemsize > uoffset_t.
}
// Call this right before StartVector/CreateVector if you want to force the
// alignment to be something different than what the element size would
// normally dictate.
// This is useful when storing a nested_flatbuffer in a vector of bytes,
// or when storing SIMD floats, etc.
void ForceVectorAlignment(size_t len, size_t elemsize, size_t alignment) {
PreAlign(len * elemsize, alignment);
}
uint8_t *ReserveElements(size_t len, size_t elemsize) {
return buf_.make_space(len * elemsize);
}