forward declare every struct and union to be able to self-reference

This commit is contained in:
Jan 2021-02-20 03:30:00 +01:00
parent a2029da1d5
commit 60a689f58c
3 changed files with 5 additions and 1 deletions

View File

@ -48,6 +48,8 @@ void HeaderBlockStruct::OnOpen(HeaderParserState* state)
{
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)

View File

@ -48,6 +48,8 @@ void HeaderBlockUnion::OnOpen(HeaderParserState* state)
{
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)

View File

@ -61,7 +61,7 @@ void HeaderParserState::AddDataType(std::unique_ptr<DataDefinition> definition)
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)