PERF: micro optimization: the (*pos1) && (*pos1=='/') were redundant, and

hasDoubleSlash is false in most cases, so in most cases 3 comparisons were
done, now only one

Alex
This commit is contained in:
Alexander Neundorf 2007-07-23 09:06:48 -04:00
parent 21c14ca2bc
commit dddbad259c
2 changed files with 4 additions and 7 deletions

View File

@ -2193,13 +2193,12 @@ std::string cmLocalGenerator::Convert(const char* source,
break;
}
}
// Now convert it to an output path.
if (output == MAKEFILE)
{
result = cmSystemTools::ConvertToOutputPath(result.c_str());
}
if( output == SHELL)
else if( output == SHELL)
{
// For the MSYS shell convert drive letters to posix paths, so
// that c:/some/path becomes /c/some/path. This is needed to
@ -2298,9 +2297,8 @@ static bool cmLocalGeneratorNotAbove(const char* a, const char* b)
//----------------------------------------------------------------------------
std::string
cmLocalGenerator
::ConvertToRelativePath(const std::vector<std::string>& local,
const char* in_remote)
cmLocalGenerator::ConvertToRelativePath(const std::vector<std::string>& local,
const char* in_remote)
{
// The path should never be quoted.
assert(in_remote[0] != '\"');

View File

@ -1344,8 +1344,7 @@ void SystemTools::ConvertToUnixSlashes(kwsys_stl::string& path)
}
// Also, reuse the loop to check for slash followed by another slash
if ( !hasDoubleSlash && *pos1 &&
*pos1 == '/' && *(pos1+1) == '/' )
if (*pos1 == '/' && *(pos1+1) == '/' && !hasDoubleSlash)
{
#ifdef _WIN32
// However, on windows if the first characters are both slashes,