Remove temporary allocations by extending the lifetime of the retval.
See also Herb Sutter's article on the "most important const": http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/ When running the CMake daemon on the KDevelop build dir, this removes some hundreds of thousands of temporary allocations. This hotspot was found with heaptrack.
This commit is contained in:
parent
275f2a85b2
commit
f9599ed42f
|
@ -2198,9 +2198,9 @@ cmGlobalGenerator::FindGeneratorTargetImpl(std::string const& name) const
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
||||||
{
|
{
|
||||||
std::vector<cmGeneratorTarget*> tgts =
|
const std::vector<cmGeneratorTarget*>& tgts =
|
||||||
this->LocalGenerators[i]->GetGeneratorTargets();
|
this->LocalGenerators[i]->GetGeneratorTargets();
|
||||||
for (std::vector<cmGeneratorTarget*>::iterator it = tgts.begin();
|
for (std::vector<cmGeneratorTarget*>::const_iterator it = tgts.begin();
|
||||||
it != tgts.end(); ++it)
|
it != tgts.end(); ++it)
|
||||||
{
|
{
|
||||||
if ((*it)->GetName() == name)
|
if ((*it)->GetName() == name)
|
||||||
|
@ -2217,9 +2217,9 @@ cmGlobalGenerator::FindImportedTargetImpl(std::string const& name) const
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < this->Makefiles.size(); ++i)
|
for (unsigned int i = 0; i < this->Makefiles.size(); ++i)
|
||||||
{
|
{
|
||||||
std::vector<cmTarget*> tgts =
|
const std::vector<cmTarget*>& tgts =
|
||||||
this->Makefiles[i]->GetOwnedImportedTargets();
|
this->Makefiles[i]->GetOwnedImportedTargets();
|
||||||
for (std::vector<cmTarget*>::iterator it = tgts.begin();
|
for (std::vector<cmTarget*>::const_iterator it = tgts.begin();
|
||||||
it != tgts.end(); ++it)
|
it != tgts.end(); ++it)
|
||||||
{
|
{
|
||||||
if ((*it)->GetName() == name && (*it)->IsImportedGloballyVisible())
|
if ((*it)->GetName() == name && (*it)->IsImportedGloballyVisible())
|
||||||
|
@ -2236,9 +2236,9 @@ cmGeneratorTarget* cmGlobalGenerator::FindImportedGeneratorTargetImpl(
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
||||||
{
|
{
|
||||||
std::vector<cmGeneratorTarget*> tgts =
|
const std::vector<cmGeneratorTarget*>& tgts =
|
||||||
this->LocalGenerators[i]->GetImportedGeneratorTargets();
|
this->LocalGenerators[i]->GetImportedGeneratorTargets();
|
||||||
for (std::vector<cmGeneratorTarget*>::iterator it = tgts.begin();
|
for (std::vector<cmGeneratorTarget*>::const_iterator it = tgts.begin();
|
||||||
it != tgts.end(); ++it)
|
it != tgts.end(); ++it)
|
||||||
{
|
{
|
||||||
if ((*it)->IsImportedGloballyVisible() && (*it)->GetName() == name)
|
if ((*it)->IsImportedGloballyVisible() && (*it)->GetName() == name)
|
||||||
|
|
Loading…
Reference in New Issue