mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 16:15:43 +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())
|
||||
<< ">(" << 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())
|
||||
<< ">(" << 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("")
|
||||
|
||||
WriteMember_TypeCheck(info, member, modifier, writeType);
|
||||
}
|
||||
|
||||
@ -838,8 +838,8 @@ class ZoneWriteTemplate::Internal final : BaseTemplate
|
||||
else
|
||||
{
|
||||
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)
|
||||
|
@ -140,6 +140,7 @@ void InMemoryZoneOutputStream::WriteNullTerminated(const void* src)
|
||||
uintptr_t InMemoryZoneOutputStream::GetCurrentZonePointer()
|
||||
{
|
||||
assert(!m_block_stack.empty());
|
||||
assert(m_block_stack.top()->m_type == XBlock::Type::BLOCK_TYPE_NORMAL);
|
||||
|
||||
uintptr_t ptr = 0;
|
||||
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