mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-12 14:31:50 +00:00
fix setAscii, setUnicode
This commit is contained in:
parent
024dccb135
commit
99e8764907
2 changed files with 4 additions and 2 deletions
|
|
@ -260,6 +260,9 @@ size_t StructLayout::setAscii(
|
||||||
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
||||||
auto size = std::min(value.size(), static_cast<std::size_t>(field.elements));
|
auto size = std::min(value.size(), static_cast<std::size_t>(field.elements));
|
||||||
std::memcpy(ptr, value.data(), size);
|
std::memcpy(ptr, value.data(), size);
|
||||||
|
if (size < field.elements) {
|
||||||
|
std::memset(ptr + size, 0, field.elements - size);
|
||||||
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -274,7 +277,7 @@ size_t StructLayout::setUnicode(
|
||||||
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
auto ptr = reinterpret_cast<char*>(dst + field.offset);
|
||||||
std::memcpy(ptr, value.data(), size);
|
std::memcpy(ptr, value.data(), size);
|
||||||
if (size < field.elements) {
|
if (size < field.elements) {
|
||||||
ptr[size] = '\0';
|
std::memset(ptr + size, 0, field.elements - size);
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ namespace util {
|
||||||
return dataio::le2h(*(reinterpret_cast<const T*>(src) + offset));
|
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
|
/// @brief Simple heap implementation for memory-optimal sparse array of
|
||||||
/// small different structures
|
/// small different structures
|
||||||
/// @note alignment is not impemented
|
/// @note alignment is not impemented
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue