Fix lazy generator not storing string database and user data

* We need this to properly serialise on some drivers.
This commit is contained in:
baldurk
2020-10-28 14:50:17 +00:00
parent fc6348cca6
commit e734cfe077
+7 -2
View File
@@ -1328,7 +1328,10 @@ private:
LazyGenerator MakeLazySerialiser()
{
ChunkLookup lookup = m_ChunkLookup;
return [lookup](const void *ptr) {
void *userData = m_pUserData;
bool buffers = m_ExportBuffers;
std::set<rdcstr> *stringDB = m_ExtStringDB;
return [lookup, userData, buffers, stringDB](const void *ptr) {
T &input = *(T *)ptr;
static StreamReader dummy(StreamReader::DummyStream);
@@ -1340,9 +1343,11 @@ private:
Serialiser<SerialiserMode::Reading> ser(&dummy, Ownership::Nothing, ret);
ser.ConfigureStructuredExport(lookup, false, 0, 1.0);
ser.ConfigureStructuredExport(lookup, buffers, 0, 1.0);
ser.SetStreamingMode(true);
ser.SetDummy(true);
ser.SetUserData(userData);
ser.SetStringDatabase(stringDB);
SerialiseDispatch<Serialiser<SerialiserMode::Reading>, T>::Do(ser, input);