diff --git a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp index 3076f809..7ceda1e9 100644 --- a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp +++ b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp @@ -397,6 +397,16 @@ class ZoneWriteTemplate::Internal final : BaseTemplate return false; } + if (member->m_is_string) + { + return false; + } + + if (member->m_type && StructureComputations(member->m_type).IsAsset()) + { + return false; + } + return true; } diff --git a/src/ZoneWriting/Writing/ContentWriterBase.cpp b/src/ZoneWriting/Writing/ContentWriterBase.cpp index acacbd21..df86f7ce 100644 --- a/src/ZoneWriting/Writing/ContentWriterBase.cpp +++ b/src/ZoneWriting/Writing/ContentWriterBase.cpp @@ -26,6 +26,7 @@ void ContentWriterBase::WriteXString(const bool atStreamStart) if (m_stream->ReusableShouldWrite(varXString)) { m_stream->Align(alignof(const char)); + m_stream->ReusableAddOffset(*varXString); m_stream->WriteNullTerminated(*varXString); m_stream->MarkFollowing(*varXString);