Optimize string comparisons by avoiding the creation of temporary substrings.
TRAC #16567
Bug=136
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@761 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
index 206d62e..fd79e46 100644
--- a/src/libGLESv2/Program.cpp
+++ b/src/libGLESv2/Program.cpp
@@ -50,7 +50,7 @@
bool Uniform::isArray()
{
- return _name.substr(0, 3) == "ar_";
+ return _name.compare(0, 3, "ar_") == 0;
}
UniformLocation::UniformLocation(const std::string &_name, unsigned int element, unsigned int index)
@@ -1905,7 +1905,7 @@
// This method needs to match OutputHLSL::decorate
std::string Program::decorateAttribute(const std::string &name)
{
- if (name.substr(0, 3) != "gl_" && name.substr(0, 3) != "dx_")
+ if (name.compare(0, 3, "gl_") != 0 && name.compare(0, 3, "dx_") != 0)
{
return "_" + name;
}
@@ -1915,11 +1915,11 @@
std::string Program::undecorateUniform(const std::string &_name)
{
- if (_name.substr(0, 1) == "_")
+ if (_name[0] == '_')
{
return _name.substr(1);
}
- else if (_name.substr(0, 3) == "ar_")
+ else if (_name.compare(0, 3, "ar_") == 0)
{
return _name.substr(3);
}
@@ -2778,7 +2778,7 @@
unsigned int uniform;
for (uniform = 0; uniform < mUniforms.size(); uniform++)
{
- if (mUniforms[uniform]->name.substr(0, 3) == "dx_")
+ if (mUniforms[uniform]->name.compare(0, 3, "dx_") == 0)
{
continue;
}
@@ -2823,7 +2823,7 @@
unsigned int numUniforms = mUniforms.size();
for (unsigned int uniformIndex = 0; uniformIndex < numUniforms; uniformIndex++)
{
- if (mUniforms[uniformIndex]->name.substr(0, 3) != "dx_")
+ if (mUniforms[uniformIndex]->name.compare(0, 3, "dx_") != 0)
{
count++;
}
@@ -2839,7 +2839,7 @@
unsigned int numUniforms = mUniforms.size();
for (unsigned int uniformIndex = 0; uniformIndex < numUniforms; uniformIndex++)
{
- if (!mUniforms[uniformIndex]->name.empty() && mUniforms[uniformIndex]->name.substr(0, 3) != "dx_")
+ if (!mUniforms[uniformIndex]->name.empty() && mUniforms[uniformIndex]->name.compare(0, 3, "dx_") != 0)
{
int length = (int)(mUniforms[uniformIndex]->name.length() + 1);
if (mUniforms[uniformIndex]->isArray())