summaryrefslogtreecommitdiffstats
path: root/base/strings
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 05:45:17 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 05:45:17 +0000
commite59558b78e8c6a1b0bd916a724724b638c3c91b6 (patch)
tree712268a7e9e1cd552f309d89641b2bed5ad06322 /base/strings
parent31fcd34da3797bc49160620ef8c94a38652c0587 (diff)
downloadchromium_src-e59558b78e8c6a1b0bd916a724724b638c3c91b6.zip
chromium_src-e59558b78e8c6a1b0bd916a724724b638c3c91b6.tar.gz
chromium_src-e59558b78e8c6a1b0bd916a724724b638c3c91b6.tar.bz2
Rewrite std::string("") to std::string(), Linux edition.
This patch was generated by running the empty_string clang tool across the Chromium Linux compilation database. Implicitly or explicitly constructing std::string() with a "" argument is inefficient as the caller needs to emit extra instructions to pass an argument, and the constructor needlessly copies a byte into internal storage. Rewriting these instances to simply call the default constructor appears to save ~14-18 kilobytes on an optimized release build. BUG=none Review URL: https://codereview.chromium.org/13145003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193020 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/strings')
-rw-r--r--base/strings/string_split.cc3
-rw-r--r--base/strings/string_split_unittest.cc24
2 files changed, 15 insertions, 12 deletions
diff --git a/base/strings/string_split.cc b/base/strings/string_split.cc
index f5f19e9..819fdba 100644
--- a/base/strings/string_split.cc
+++ b/base/strings/string_split.cc
@@ -107,7 +107,8 @@ bool SplitStringIntoKeyValuePairs(
success = false;
}
DCHECK_LE(value.size(), 1U);
- kv_pairs->push_back(make_pair(key, value.empty()? "" : value[0]));
+ kv_pairs->push_back(
+ make_pair(key, value.empty() ? std::string() : value[0]));
}
return success;
}
diff --git a/base/strings/string_split_unittest.cc b/base/strings/string_split_unittest.cc
index a950cac..6729497 100644
--- a/base/strings/string_split_unittest.cc
+++ b/base/strings/string_split_unittest.cc
@@ -36,9 +36,10 @@ class SplitStringIntoKeyValuesTest : public testing::Test {
};
TEST_F(SplitStringIntoKeyValuesTest, EmptyInputMultipleValues) {
- EXPECT_FALSE(SplitStringIntoKeyValues("", // Empty input
- '\t', // Key separators
- &key, &values));
+ EXPECT_FALSE(SplitStringIntoKeyValues(std::string(), // Empty input
+ '\t', // Key separators
+ &key,
+ &values));
EXPECT_TRUE(key.empty());
EXPECT_TRUE(values.empty());
}
@@ -69,9 +70,10 @@ TEST_F(SplitStringIntoKeyValuesTest, KeyWithMultipleValues) {
}
TEST_F(SplitStringIntoKeyValuesTest, EmptyInputSingleValue) {
- EXPECT_FALSE(SplitStringIntoKeyValues("", // Empty input
- '\t', // Key separators
- &key, &values));
+ EXPECT_FALSE(SplitStringIntoKeyValues(std::string(), // Empty input
+ '\t', // Key separators
+ &key,
+ &values));
EXPECT_TRUE(key.empty());
EXPECT_TRUE(values.empty());
}
@@ -108,9 +110,9 @@ class SplitStringIntoKeyValuePairsTest : public testing::Test {
};
TEST_F(SplitStringIntoKeyValuePairsTest, EmptyString) {
- EXPECT_TRUE(SplitStringIntoKeyValuePairs("",
- ':', // Key-value delimiters
- ',', // Key-value pair delims
+ EXPECT_TRUE(SplitStringIntoKeyValuePairs(std::string(),
+ ':', // Key-value delimiters
+ ',', // Key-value pair delims
&kv_pairs));
EXPECT_TRUE(kv_pairs.empty());
}
@@ -153,7 +155,7 @@ TEST_F(SplitStringIntoKeyValuePairsTest, DelimiterInValue) {
TEST(SplitStringUsingSubstrTest, EmptyString) {
std::vector<std::string> results;
- SplitStringUsingSubstr("", "DELIMITER", &results);
+ SplitStringUsingSubstr(std::string(), "DELIMITER", &results);
ASSERT_EQ(1u, results.size());
EXPECT_THAT(results, ElementsAre(""));
}
@@ -162,7 +164,7 @@ TEST(SplitStringUsingSubstrTest, EmptyString) {
TEST(StringUtilTest, SplitString) {
std::vector<std::wstring> r;
- SplitString(L"", L',', &r);
+ SplitString(std::wstring(), L',', &r);
EXPECT_EQ(0U, r.size());
r.clear();