mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-01-19 15:01:49 +00:00
fix: only fill used union members when loading
This commit is contained in:
@@ -596,7 +596,7 @@ namespace
|
||||
{
|
||||
const MemberComputations computations(&member);
|
||||
|
||||
if (computations.IsFirstUsedMember(false))
|
||||
if (computations.IsFirstUsedMember(true))
|
||||
{
|
||||
if (member.m_condition)
|
||||
{
|
||||
@@ -614,7 +614,7 @@ namespace
|
||||
PrintFillStruct_Member(structInfo, member, DeclarationModifierComputations(&member), 0u);
|
||||
}
|
||||
}
|
||||
else if (computations.IsLastUsedMember(false))
|
||||
else if (computations.IsLastUsedMember(true))
|
||||
{
|
||||
if (member.m_condition)
|
||||
{
|
||||
@@ -668,9 +668,6 @@ namespace
|
||||
}
|
||||
|
||||
const auto* dynamicMember = StructureComputations(&info).GetDynamicMember();
|
||||
|
||||
if (dynamicMember)
|
||||
{
|
||||
if (info.m_definition->GetType() == DataDefinitionType::UNION)
|
||||
{
|
||||
for (const auto& member : info.m_ordered_members)
|
||||
@@ -693,21 +690,10 @@ namespace
|
||||
PrintFillStruct_Member(info, *member, DeclarationModifierComputations(member.get()), 0u);
|
||||
}
|
||||
|
||||
if (dynamicMember)
|
||||
PrintFillStruct_Member_Condition_Struct(info, *dynamicMember);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const auto& member : info.m_ordered_members)
|
||||
{
|
||||
const MemberComputations computations(member.get());
|
||||
if (computations.ShouldIgnore())
|
||||
continue;
|
||||
|
||||
PrintFillStruct_Member(info, *member, DeclarationModifierComputations(member.get()), 0u);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PrintFillStructMethod(const StructureInformation* info)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user