From ffac925410661a4febe29e13baca31c132ed2bfe Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 31 Dec 2024 14:17:42 +0100 Subject: [PATCH] fix: reallocate assets before adding to zone pool when loading from fastfile --- .../Generating/Templates/ZoneLoadTemplate.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp index a01235ac..b627cf5b 100644 --- a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp +++ b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp @@ -1098,9 +1098,12 @@ class ZoneLoadTemplate::Internal final : BaseTemplate LINE(MarkerClassName(m_env.m_asset) << " marker(m_zone);") LINE("marker.Mark(*pAsset);") LINE("") - LINE("m_asset_info = reinterpret_castm_definition->GetFullName() - << ">*>(LinkAsset(GetAssetName(*pAsset), *pAsset, marker.GetDependencies(), marker.GetUsedScriptStrings(), marker.GetIndirectAssetReferences()));") + LINE("auto* reallocatedAsset = m_zone->GetMemory()->Alloc<" << info->m_definition->GetFullName() << ">();") + LINE("std::memcpy(reallocatedAsset, *pAsset, sizeof(" << info->m_definition->GetFullName() << "));") + LINE("") + LINE("m_asset_info = reinterpret_castm_definition->GetFullName() + << ">*>(LinkAsset(GetAssetName(*pAsset), reallocatedAsset, marker.GetDependencies(), " + "marker.GetUsedScriptStrings(), marker.GetIndirectAssetReferences()));") LINE("*pAsset = m_asset_info->Asset();") m_intendation--; @@ -1275,6 +1278,7 @@ public: LINE("#include \"" << Lower(m_env.m_asset->m_definition->m_name) << "_load_db.h\"") LINE("#include \"" << Lower(m_env.m_asset->m_definition->m_name) << "_mark_db.h\"") LINE("#include ") + LINE("#include ") LINE("") if (!m_env.m_referenced_assets.empty())