cmPolicies: Store only state that users can set.

cmPolicies::PolicyMap does not need to store the REQUIRED_ALWAYS or
REQUIRED_IF_USED states as they are statically determined.
This commit is contained in:
Stephen Kelly 2015-06-22 03:18:55 +02:00
parent 84e1805666
commit 71e69fc93b
2 changed files with 2 additions and 16 deletions

View File

@ -356,14 +356,6 @@ cmPolicies::PolicyMap::Get(cmPolicies::PolicyID id) const
{ {
status = cmPolicies::NEW; status = cmPolicies::NEW;
} }
else if (this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_ALWAYS])
{
status = cmPolicies::REQUIRED_ALWAYS;
}
else if (this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_IF_USED])
{
status = cmPolicies::REQUIRED_IF_USED;
}
return status; return status;
} }
@ -373,19 +365,13 @@ void cmPolicies::PolicyMap::Set(cmPolicies::PolicyID id,
this->Status[(POLICY_STATUS_COUNT * id) + OLD] = (status == OLD); this->Status[(POLICY_STATUS_COUNT * id) + OLD] = (status == OLD);
this->Status[(POLICY_STATUS_COUNT * id) + WARN] = (status == WARN); this->Status[(POLICY_STATUS_COUNT * id) + WARN] = (status == WARN);
this->Status[(POLICY_STATUS_COUNT * id) + NEW] = (status == NEW); this->Status[(POLICY_STATUS_COUNT * id) + NEW] = (status == NEW);
this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_ALWAYS] =
(status == REQUIRED_ALWAYS);
this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_IF_USED] =
(status == REQUIRED_IF_USED);
} }
bool cmPolicies::PolicyMap::IsDefined(cmPolicies::PolicyID id) const bool cmPolicies::PolicyMap::IsDefined(cmPolicies::PolicyID id) const
{ {
return this->Status[(POLICY_STATUS_COUNT * id) + OLD] return this->Status[(POLICY_STATUS_COUNT * id) + OLD]
|| this->Status[(POLICY_STATUS_COUNT * id) + WARN] || this->Status[(POLICY_STATUS_COUNT * id) + WARN]
|| this->Status[(POLICY_STATUS_COUNT * id) + NEW] || this->Status[(POLICY_STATUS_COUNT * id) + NEW];
|| this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_ALWAYS]
|| this->Status[(POLICY_STATUS_COUNT * id) + REQUIRED_IF_USED];
} }
bool cmPolicies::PolicyMap::IsEmpty() const bool cmPolicies::PolicyMap::IsEmpty() const

View File

@ -244,7 +244,6 @@ public:
REQUIRED_IF_USED, REQUIRED_IF_USED,
REQUIRED_ALWAYS ///< Issue an error unless user sets policy status to NEW. REQUIRED_ALWAYS ///< Issue an error unless user sets policy status to NEW.
}; };
#define POLICY_STATUS_COUNT 5
/// Policy identifiers /// Policy identifiers
enum PolicyID enum PolicyID
@ -288,6 +287,7 @@ public:
bool IsEmpty() const; bool IsEmpty() const;
private: private:
#define POLICY_STATUS_COUNT 3
std::bitset<cmPolicies::CMPCOUNT * POLICY_STATUS_COUNT> Status; std::bitset<cmPolicies::CMPCOUNT * POLICY_STATUS_COUNT> Status;
}; };
}; };