Thanks for the hint - sounds promising, but I think I am missing something. My deserialization code receives wrong data when I changed the serialization code as follows:
diff --git livre/Lib/zeq/events.cpp livre/Lib/zeq/events.cpp
index d5aee99..2e6e163 100644
--- livre/Lib/zeq/events.cpp
+++ livre/Lib/zeq/events.cpp
@@ -178,8 +178,10 @@ LODNodeSample deserializeDataSample( const ::zeq::Event& ev
ent )
{
::zeq::Event event( id );
flatbuffers::FlatBufferBuilder& fbb = event.getFBB();
- auto data = fbb.CreateVector( memory->getData< uint8_t >(),
- memory->getMemSize( ));
+ const size_t size = memory->getMemSize();
+ auto data = fbb.CreateUninitializedVector< uint8_t >( size );
+ uint8_t* ptr = fbb.GetBufferPointer();
+ ::memcpy( ptr, memory->getData< uint8_t >(), size );
livrezeq::MemoryBuilder builder( fbb );
builder.add_data( data );
Any ideas? Do you have a working sample or unit test of CreateUnitializedVector?
Cheers,
Stefan.