Merge pull request #778 from martin-flaska/optimization

String::substr optimization
This commit is contained in:
Stephen F. Booth
2016-11-25 16:38:32 -05:00
committed by GitHub
2 changed files with 7 additions and 1 deletions

View File

@ -447,7 +447,10 @@ bool String::startsWith(const String &s) const
String String::substr(unsigned int position, unsigned int n) const
{
return String(d->data.substr(position, n));
if(position == 0 && n == size())
return *this;
else
return String(d->data.substr(position, n));
}
String &String::append(const String &s)

View File

@ -112,6 +112,9 @@ public:
CPPUNIT_ASSERT(String(" foo ").stripWhiteSpace() == String("foo"));
CPPUNIT_ASSERT(String("foo ").stripWhiteSpace() == String("foo"));
CPPUNIT_ASSERT(String(" foo").stripWhiteSpace() == String("foo"));
CPPUNIT_ASSERT(String("foo").stripWhiteSpace() == String("foo"));
CPPUNIT_ASSERT(String("f o o").stripWhiteSpace() == String("f o o"));
CPPUNIT_ASSERT(String(" f o o ").stripWhiteSpace() == String("f o o"));
CPPUNIT_ASSERT(memcmp(String("foo").data(String::Latin1).data(), "foo", 3) == 0);
CPPUNIT_ASSERT(memcmp(String("f").data(String::Latin1).data(), "f", 1) == 0);