mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-01 04:03:24 +03:00
cmGeneratorExpressionLexer: only tokenize strings with a '$'
In standard libraries, `std::string::find` is usually implemented using vectorized code. Since the Tokenize method iterates character-by-character, doing an initial check using `find` improves performance.
This commit is contained in:
1 parent
f2b8d67f19
commit
14a13d30ee
1 file changed
+6
@@ -21,6 +21,12 @@ std::vector<cmGeneratorExpressionToken> cmGeneratorExpressionLexer::Tokenize(
|
||||
{
|
||||
std::vector<cmGeneratorExpressionToken> result;
|
||||
|
||||
if (input.find('$') == std::string::npos) {
|
||||
result.push_back(cmGeneratorExpressionToken(
|
||||
cmGeneratorExpressionToken::Text, input.c_str(), input.size()));
|
||||
return result;
|
||||
}
|
||||
|
||||
const char* c = input.c_str();
|
||||
const char* upto = c;
|
||||
|
||||
|
||||
Reference in new issue
Block a user