From a2ef4454558741c584e33d8764a3a36b5c208820 Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 21 Mar 2021 10:19:51 +0100 Subject: [PATCH] Fix adding offsets on strings and assets --- .../Generating/Templates/ZoneWriteTemplate.cpp | 10 ++++++++++ src/ZoneWriting/Writing/ContentWriterBase.cpp | 1 + 2 files changed, 11 insertions(+) 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);