fix setAscii, setUnicode
This commit is contained in:
parent
024dccb135
commit
99e8764907
@ -260,6 +260,9 @@ size_t StructLayout::setAscii(
|
||||
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
||||
auto size = std::min(value.size(), static_cast<std::size_t>(field.elements));
|
||||
std::memcpy(ptr, value.data(), size);
|
||||
if (size < field.elements) {
|
||||
std::memset(ptr + size, 0, field.elements - size);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
@ -274,7 +277,7 @@ size_t StructLayout::setUnicode(
|
||||
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
||||
std::memcpy(ptr, value.data(), size);
|
||||
if (size < field.elements) {
|
||||
ptr[size] = '\0';
|
||||
std::memset(ptr + size, 0, field.elements - size);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ namespace util {
|
||||
return dataio::le2h(*(reinterpret_cast<const T*>(src) + offset));
|
||||
}
|
||||
|
||||
// TODO: make it safer (minimize raw temporary pointers use)
|
||||
/// @brief Simple heap implementation for memory-optimal sparse array of
|
||||
/// small different structures
|
||||
/// @note alignment is not impemented
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user