diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h index 5ca38d8be..c3531d411 100644 --- a/include/flatbuffers/flatbuffers.h +++ b/include/flatbuffers/flatbuffers.h @@ -1057,8 +1057,12 @@ FLATBUFFERS_FINAL_CLASS /// where the vector is stored. template Offset> CreateVector(const T *v, size_t len) { StartVector(len, sizeof(T)); - for (auto i = len; i > 0; ) { - PushElement(v[--i]); + if (sizeof(T) == 1) { + PushBytes(reinterpret_cast(v), len); + } else { + for (auto i = len; i > 0; ) { + PushElement(v[--i]); + } } return Offset>(EndVector(len)); }