mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 16:15:43 +00:00
forward declare every struct and union to be able to self-reference
This commit is contained in:
parent
a2029da1d5
commit
60a689f58c
@ -48,6 +48,8 @@ void HeaderBlockStruct::OnOpen(HeaderParserState* state)
|
|||||||
{
|
{
|
||||||
state->m_namespace.Push(m_type_name);
|
state->m_namespace.Push(m_type_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
state->AddForwardDeclaration(std::make_unique<ForwardDeclaration>(m_namespace, m_type_name, DataDefinitionType::STRUCT));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HeaderBlockStruct::OnClose(HeaderParserState* state)
|
void HeaderBlockStruct::OnClose(HeaderParserState* state)
|
||||||
|
@ -48,6 +48,8 @@ void HeaderBlockUnion::OnOpen(HeaderParserState* state)
|
|||||||
{
|
{
|
||||||
state->m_namespace.Push(m_type_name);
|
state->m_namespace.Push(m_type_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
state->AddForwardDeclaration(std::make_unique<ForwardDeclaration>(m_namespace, m_type_name, DataDefinitionType::UNION));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HeaderBlockUnion::OnClose(HeaderParserState* state)
|
void HeaderBlockUnion::OnClose(HeaderParserState* state)
|
||||||
|
@ -61,7 +61,7 @@ void HeaderParserState::AddDataType(std::unique_ptr<DataDefinition> definition)
|
|||||||
|
|
||||||
void HeaderParserState::AddForwardDeclaration(std::unique_ptr<ForwardDeclaration> forwardDeclaration)
|
void HeaderParserState::AddForwardDeclaration(std::unique_ptr<ForwardDeclaration> forwardDeclaration)
|
||||||
{
|
{
|
||||||
m_forward_declarations.insert(std::make_pair(forwardDeclaration->m_name, std::move(forwardDeclaration)));
|
m_forward_declarations.insert(std::make_pair(forwardDeclaration->GetFullName(), std::move(forwardDeclaration)));
|
||||||
}
|
}
|
||||||
|
|
||||||
const DataDefinition* HeaderParserState::FindType(const std::string& typeName)
|
const DataDefinition* HeaderParserState::FindType(const std::string& typeName)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user