diff --git a/tom/include/tom/commands/make/support/modelcreator.hpp b/tom/include/tom/commands/make/support/modelcreator.hpp index fd78b7ed6..10f6120f4 100644 --- a/tom/include/tom/commands/make/support/modelcreator.hpp +++ b/tom/include/tom/commands/make/support/modelcreator.hpp @@ -219,8 +219,8 @@ namespace Tom::Commands::Make::Support /*! Forward declarations list for related models. */ std::set m_forwardsList {}; - /*! Cached relations list size to avoid recomputation. */ - std::size_t m_relationsListSize = 0; + /*! Cached relations lists size to avoid recomputations (NOT m_relationsList). */ + std::size_t m_relationsListsSize = 0; }; } // namespace Tom::Commands::Make::Support diff --git a/tom/src/tom/commands/make/support/modelcreator.cpp b/tom/src/tom/commands/make/support/modelcreator.cpp index 92918bb36..2d09c9845 100644 --- a/tom/src/tom/commands/make/support/modelcreator.cpp +++ b/tom/src/tom/commands/make/support/modelcreator.cpp @@ -180,11 +180,11 @@ ModelCreator::createPublicSection(const QString &className, const CmdOptions &cm belongsToManyList); // Nothing to do, no relations passed - if (m_relationsListSize == 0) + if (m_relationsListsSize == 0) return {}; RelationsWithOrder publicSectionList; - publicSectionList.reserve(m_relationsListSize); + publicSectionList.reserve(m_relationsListsSize); publicSectionList |= ranges::actions::push_back( createOneToOneRelation(className, oneToOneList, @@ -881,7 +881,7 @@ QString ModelCreator::createRelationsHash( ] = cmdOptions; // Nothing to create, no relations passed - if (m_relationsListSize == 0) + if (m_relationsListsSize == 0) return {}; // Get max. size of relation names for align @@ -892,7 +892,7 @@ QString ModelCreator::createRelationsHash( ] = relationsOrder; RelationsWithOrder relationItemsList; - relationItemsList.reserve(m_relationsListSize); // Use already the cached size value + relationItemsList.reserve(m_relationsListsSize); // Use already the cached size value relationItemsList |= ranges::actions::push_back( createOneToOneRelationItem( @@ -1283,12 +1283,12 @@ std::size_t ModelCreator::computeReserveForRelationsList( const QStringList &belongsTo, const QStringList &belongsToMany) { // Cache the computed reserve size to avoid recomputation in the private section - m_relationsListSize = static_cast(oneToOne.size()) + + m_relationsListsSize = static_cast(oneToOne.size()) + static_cast(oneToMany.size()) + static_cast(belongsTo.size()) + static_cast(belongsToMany.size()); - return m_relationsListSize; + return m_relationsListsSize; } QString ModelCreator::joinRelationsList(RelationsWithOrder &&relationsList)