From 93ffdc915d4aaf3cfa958219c6ca03b34a0214f8 Mon Sep 17 00:00:00 2001 From: fredzio Date: Fri, 1 Mar 2019 23:12:45 +0100 Subject: [PATCH] SearchVisitor copy a new std::string everytime CellsStore::search is called. Use a reference instead --- apps/openmw/mwworld/cellstore.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index e291951ae3..0ddad209a1 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -382,10 +382,10 @@ namespace MWWorld struct SearchVisitor { PtrType mFound; - std::string mIdToFind; + const std::string *mIdToFind; bool operator()(const PtrType& ptr) { - if (ptr.getCellRef().getRefId() == mIdToFind) + if (ptr.getCellRef().getRefId() == *mIdToFind) { mFound = ptr; return false; @@ -397,7 +397,7 @@ namespace MWWorld Ptr CellStore::search (const std::string& id) { SearchVisitor searchVisitor; - searchVisitor.mIdToFind = id; + searchVisitor.mIdToFind = &id; forEach(searchVisitor); return searchVisitor.mFound; } @@ -405,7 +405,7 @@ namespace MWWorld ConstPtr CellStore::searchConst (const std::string& id) const { SearchVisitor searchVisitor; - searchVisitor.mIdToFind = id; + searchVisitor.mIdToFind = &id; forEachConst(searchVisitor); return searchVisitor.mFound; }