summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-05 13:06:44 (GMT)
committerBrad King <brad.king@kitware.com>2009-10-05 13:06:44 (GMT)
commitdaa2f3aa416b02e4abea0274312a44eca63c5860 (patch)
tree1d3b07b2338b3be662e55e2b880585933c65d320
parent78f08116287fb534bfb0bc2921fd3f5bac47ce93 (diff)
downloadCMake-daa2f3aa416b02e4abea0274312a44eca63c5860.zip
CMake-daa2f3aa416b02e4abea0274312a44eca63c5860.tar.gz
CMake-daa2f3aa416b02e4abea0274312a44eca63c5860.tar.bz2
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.
-rw-r--r--Source/cmTarget.cxx16
-rw-r--r--Source/cmTarget.h2
2 files changed, 9 insertions, 9 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 440d5c7..d095879 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -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();
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 349d0e0..db49645 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -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;