Closed
Description
For a type defined like
<types>
<type name="int3" primitiveType="int32" semanticType="FooType" length="3"/>
</types>
and used in a message like
<field name="array" id="2" type="int3"/>
the generated stubs contain getters and setters like
std::uint64_t getArray(char *dst, const std::uint64_t length) const
{
if (length > 3)
{
throw std::runtime_error("length too large for getArray [E106]");
}
std::memcpy(dst, m_buffer + m_offset + 0, length);
return length;
}
Simple3 &putArray(const char *src)
{
std::memcpy(m_buffer + m_offset + 0, src, 3);
return *this;
}
In both cases, the call to memcpy
uses a size of 3 (bytes), but it should be 12 (3 elements, each of 4 bytes for int32)?
Metadata
Metadata
Assignees
Labels
No labels