mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 00:25:44 +00:00
Fix zone writing code not setting ptr following
This commit is contained in:
parent
0a4886e7ab
commit
8736280ea8
@ -208,6 +208,7 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
{
|
{
|
||||||
LINE("m_stream->Write<" << MakeTypeDecl(member->m_member->m_type_declaration.get()) << MakeFollowingReferences(modifier.GetFollowingDeclarationModifiers())
|
LINE("m_stream->Write<" << MakeTypeDecl(member->m_member->m_type_declaration.get()) << MakeFollowingReferences(modifier.GetFollowingDeclarationModifiers())
|
||||||
<< ">(" << MakeMemberAccess(info, member, modifier) << ", " << MakeEvaluation(modifier.GetArrayPointerCountEvaluation()) << ");")
|
<< ">(" << MakeMemberAccess(info, member, modifier) << ", " << MakeEvaluation(modifier.GetArrayPointerCountEvaluation()) << ");")
|
||||||
|
LINE("m_stream->MarkFollowing("<<MakeMemberAccess(info, member, modifier)<<");")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,6 +304,7 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
{
|
{
|
||||||
LINE("m_stream->Write<" << MakeTypeDecl(member->m_member->m_type_declaration.get()) << MakeFollowingReferences(modifier.GetFollowingDeclarationModifiers())
|
LINE("m_stream->Write<" << MakeTypeDecl(member->m_member->m_type_declaration.get()) << MakeFollowingReferences(modifier.GetFollowingDeclarationModifiers())
|
||||||
<< ">(" << MakeMemberAccess(info, member, modifier) << ");")
|
<< ">(" << MakeMemberAccess(info, member, modifier) << ");")
|
||||||
|
LINE("m_stream->MarkFollowing("<<MakeMemberAccess(info, member, modifier)<<");")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,8 +404,6 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
LINE("m_stream->Align("<<modifier.GetAlignment()<<");")
|
LINE("m_stream->Align("<<modifier.GetAlignment()<<");")
|
||||||
}
|
}
|
||||||
|
|
||||||
LINE("")
|
|
||||||
|
|
||||||
WriteMember_TypeCheck(info, member, modifier, writeType);
|
WriteMember_TypeCheck(info, member, modifier, writeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -838,8 +838,8 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
LINE("m_stream->Write<" << def->GetFullName() << ">(*" << MakeTypePtrVarName(def) << ");")
|
LINE("m_stream->Write<" << def->GetFullName() << ">(*" << MakeTypePtrVarName(def) << ");")
|
||||||
LINE("m_stream->MarkFollowing(*"<< MakeTypePtrVarName(def)<<");")
|
|
||||||
}
|
}
|
||||||
|
LINE("m_stream->MarkFollowing(*"<< MakeTypePtrVarName(def)<<");")
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintWritePtrArrayMethod_PointerCheck(const DataDefinition* def, StructureInformation* info, const bool reusable)
|
void PrintWritePtrArrayMethod_PointerCheck(const DataDefinition* def, StructureInformation* info, const bool reusable)
|
||||||
|
@ -140,6 +140,7 @@ void InMemoryZoneOutputStream::WriteNullTerminated(const void* src)
|
|||||||
uintptr_t InMemoryZoneOutputStream::GetCurrentZonePointer()
|
uintptr_t InMemoryZoneOutputStream::GetCurrentZonePointer()
|
||||||
{
|
{
|
||||||
assert(!m_block_stack.empty());
|
assert(!m_block_stack.empty());
|
||||||
|
assert(m_block_stack.top()->m_type == XBlock::Type::BLOCK_TYPE_NORMAL);
|
||||||
|
|
||||||
uintptr_t ptr = 0;
|
uintptr_t ptr = 0;
|
||||||
ptr |= static_cast<uintptr_t>(m_block_stack.top()->m_index) << (sizeof(uintptr_t) * 8 - m_block_bit_count);
|
ptr |= static_cast<uintptr_t>(m_block_stack.top()->m_index) << (sizeof(uintptr_t) * 8 - m_block_bit_count);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user