Combine duplicate code in target property methods
In cmTarget::SetProperty and cmTarget::AppendProperty we check whether changing the property invalidates cached information. The check was duplicated in the two methods, so this commit moves the check into a helper method called from both.
This commit is contained in:
parent
78f0811628
commit
daa2f3aa41
|
@ -2001,13 +2001,7 @@ void cmTarget::SetProperty(const char* prop, const char* value)
|
|||
}
|
||||
|
||||
this->Properties.SetProperty(prop, value, cmProperty::TARGET);
|
||||
|
||||
// If imported information is being set, wipe out cached
|
||||
// information.
|
||||
if(this->IsImported() && strncmp(prop, "IMPORTED", 8) == 0)
|
||||
{
|
||||
this->Internal->ImportInfoMap.clear();
|
||||
}
|
||||
this->MaybeInvalidatePropertyCache(prop);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -2018,9 +2012,13 @@ void cmTarget::AppendProperty(const char* prop, const char* value)
|
|||
return;
|
||||
}
|
||||
this->Properties.AppendProperty(prop, value, cmProperty::TARGET);
|
||||
this->MaybeInvalidatePropertyCache(prop);
|
||||
}
|
||||
|
||||
// If imported information is being set, wipe out cached
|
||||
// information.
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTarget::MaybeInvalidatePropertyCache(const char* prop)
|
||||
{
|
||||
// Wipe wipe out maps caching information affected by this property.
|
||||
if(this->IsImported() && strncmp(prop, "IMPORTED", 8) == 0)
|
||||
{
|
||||
this->Internal->ImportInfoMap.clear();
|
||||
|
|
|
@ -567,6 +567,8 @@ private:
|
|||
LinkImplementation& impl);
|
||||
void ComputeLinkClosure(const char* config, LinkClosure& lc);
|
||||
|
||||
void MaybeInvalidatePropertyCache(const char* prop);
|
||||
|
||||
// The cmMakefile instance that owns this target. This should
|
||||
// always be set.
|
||||
cmMakefile* Makefile;
|
||||
|
|
Loading…
Reference in New Issue