cmPropertyMap: Require a non-empty name parameter.

The cmGetPropertyCommand already checks for this.
This commit is contained in:
Stephen Kelly 2015-06-06 09:41:20 +02:00
parent 7c0aa672fe
commit 3ac4b90bfd
6 changed files with 28 additions and 11 deletions

View File

@ -52,9 +52,11 @@ bool cmGetCMakePropertyCommand
}
else
{
const char *prop =
this->Makefile->GetState()
->GetGlobalProperty(args[1]);
const char *prop = 0;
if (!args[1].empty())
{
prop = this->Makefile->GetState()->GetGlobalProperty(args[1]);
}
if (prop)
{
output = prop;

View File

@ -84,7 +84,11 @@ bool cmGetDirectoryPropertyCommand
return true;
}
const char *prop = dir->GetProperty(*i);
const char *prop = 0;
if (!i->empty())
{
prop = dir->GetProperty(*i);
}
if (prop)
{
this->Makefile->AddDefinition(variable, prop);

View File

@ -38,7 +38,11 @@ bool cmGetSourceFilePropertyCommand
this->Makefile->AddDefinition(var, sf->GetLanguage().c_str());
return true;
}
const char *prop = sf->GetPropertyForUser(args[2]);
const char *prop = 0;
if (!args[2].empty())
{
prop = sf->GetPropertyForUser(args[2]);
}
if (prop)
{
this->Makefile->AddDefinition(var, prop);

View File

@ -40,7 +40,11 @@ bool cmGetTargetPropertyCommand
else if(cmTarget* tgt = this->Makefile->FindTargetToUse(targetName))
{
cmTarget& target = *tgt;
const char* prop_cstr = target.GetProperty(args[2], this->Makefile);
const char* prop_cstr = 0;
if (!args[2].empty())
{
prop_cstr = target.GetProperty(args[2], this->Makefile);
}
if(prop_cstr)
{
prop = prop_cstr;

View File

@ -29,7 +29,11 @@ bool cmGetTestPropertyCommand
cmTest *test = this->Makefile->GetTest(testName);
if (test)
{
const char *prop = test->GetProperty(args[1]);
const char *prop = 0;
if (!args[1].empty())
{
prop = test->GetProperty(args[1]);
}
if (prop)
{
this->Makefile->AddDefinition(var, prop);

View File

@ -14,6 +14,8 @@
#include "cmake.h"
#include "cmState.h"
#include <assert.h>
cmProperty *cmPropertyMap::GetOrCreateProperty(const std::string& name)
{
cmPropertyMap::iterator it = this->find(name);
@ -60,10 +62,7 @@ const char *cmPropertyMap
bool &chain) const
{
chain = false;
if (name.empty())
{
return 0;
}
assert(!name.empty());
cmPropertyMap::const_iterator it = this->find(name);
if (it == this->end())