mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 08:05:45 +00:00
Make zone write add insert pointer even if reusable member does not have struct type
This commit is contained in:
parent
775bf01752
commit
156d7aa5cd
@ -381,9 +381,6 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
|
|
||||||
static bool WriteMember_ShouldMakeInsertReuse(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier, const MemberWriteType writeType)
|
static bool WriteMember_ShouldMakeInsertReuse(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier, const MemberWriteType writeType)
|
||||||
{
|
{
|
||||||
if (member->m_type == nullptr || !member->m_type->m_reusable_reference_exists)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (writeType != MemberWriteType::ARRAY_POINTER
|
if (writeType != MemberWriteType::ARRAY_POINTER
|
||||||
&& writeType != MemberWriteType::SINGLE_POINTER
|
&& writeType != MemberWriteType::SINGLE_POINTER
|
||||||
&& writeType != MemberWriteType::POINTER_ARRAY)
|
&& writeType != MemberWriteType::POINTER_ARRAY)
|
||||||
@ -407,6 +404,12 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (member->m_is_reusable)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (member->m_type == nullptr || !member->m_type->m_reusable_reference_exists)
|
||||||
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +427,16 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
}
|
}
|
||||||
else if (writeType == MemberWriteType::POINTER_ARRAY)
|
else if (writeType == MemberWriteType::POINTER_ARRAY)
|
||||||
{
|
{
|
||||||
LINE("m_stream->ReusableAddOffset("<<MakeMemberAccess(info, member, modifier)<<", "<<MakeEvaluation(modifier.GetPointerArrayCountEvaluation())<<");")
|
const auto* evaluation = modifier.GetPointerArrayCountEvaluation();
|
||||||
|
|
||||||
|
if(evaluation)
|
||||||
|
{
|
||||||
|
LINE("m_stream->ReusableAddOffset(" << MakeMemberAccess(info, member, modifier) << ", " << MakeEvaluation(modifier.GetPointerArrayCountEvaluation()) << ");")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LINE("m_stream->ReusableAddOffset(" << MakeMemberAccess(info, member, modifier) << ", " << modifier.GetArraySize() << ");")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user