# UNDF: UNDF-2026-000000958 --- a/source/simulation2/components/CCmpTemplateManager.cpp +++ b/source/simulation2/components/CCmpTemplateManager.cpp @@ -1,5 +1,6 @@ // CWE-407: CCmpTemplateManager::FindUsedTemplates uses std::find on a growing // std::vector for dedup, O(T^2) where T = number of entity-template pairs. // With T=2000 entities this is 2M comparisons. Fix: use std::unordered_set. +#include @@ -237,10 +238,10 @@ std::vector CCmpTemplateManager::FindUsedTemplates() const { - std::vector usedTemplates; + std::unordered_set seen; for (const std::pair& p : m_LatestTemplates) - if (std::find(usedTemplates.begin(), usedTemplates.end(), p.second) == usedTemplates.end()) - usedTemplates.push_back(p.second); - return usedTemplates; + seen.insert(p.second); + return std::vector(seen.begin(), seen.end()); }