summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorbrettw <brettw@chromium.org>2015-07-14 22:19:26 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-15 05:20:15 +0000
commitd94a2214777c98910f946b6a15258618215545f4 (patch)
treed5ae23a49e50d06b187e122578a7856a36adbc2b /base
parent65c576eee7276db9f003a553dd01970778d631ad (diff)
downloadchromium_src-d94a2214777c98910f946b6a15258618215545f4.zip
chromium_src-d94a2214777c98910f946b6a15258618215545f4.tar.gz
chromium_src-d94a2214777c98910f946b6a15258618215545f4.tar.bz2
Move JoinString to the base namespace.
Change "Separator" from string to StringPIece (most are constants). Remove char versions for symmetry with SplitString. Update callers who pass empty separators to use a base::StringPiece() Change chromecast/base/metrics/cast_metrics_helper.cc to not use JoinString at all and just append to the output (code is simpler and faster). TBR=zelidrag@chromium.org for chromeos Committed: https://crrev.com/0eabfa001ba06d3c66992b95b69a988ef0633992 Cr-Commit-Position: refs/heads/master@{#338762} patch from issue 1223153003 at patchset 160001 (http://crrev.com/1223153003#ps160001) BUG= Review URL: https://codereview.chromium.org/1230243005 Cr-Commit-Position: refs/heads/master@{#338819}
Diffstat (limited to 'base')
-rw-r--r--base/debug/crash_logging.cc2
-rw-r--r--base/strings/string_util.cc23
-rw-r--r--base/strings/string_util.h22
-rw-r--r--base/strings/string_util_unittest.cc22
-rw-r--r--base/test/launcher/test_launcher.cc2
-rw-r--r--base/test/launcher/test_launcher_ios.cc2
-rw-r--r--base/test/launcher/test_launcher_nacl_nonsfi.cc2
-rw-r--r--base/trace_event/trace_event_impl.cc2
8 files changed, 20 insertions, 57 deletions
diff --git a/base/debug/crash_logging.cc b/base/debug/crash_logging.cc
index f9b4449..058b476 100644
--- a/base/debug/crash_logging.cc
+++ b/base/debug/crash_logging.cc
@@ -119,7 +119,7 @@ void SetCrashKeyFromAddresses(const base::StringPiece& key,
hex_backtrace.push_back(s);
}
- value = JoinString(hex_backtrace, ' ');
+ value = base::JoinString(hex_backtrace, " ");
// Warn if this exceeds the breakpad limits.
DCHECK_LE(value.length(), kBreakpadValueMax);
diff --git a/base/strings/string_util.cc b/base/strings/string_util.cc
index ae5fb80..a0c95ec 100644
--- a/base/strings/string_util.cc
+++ b/base/strings/string_util.cc
@@ -884,43 +884,36 @@ char16* WriteInto(base::string16* str, size_t length_with_null) {
return WriteIntoT(str, length_with_null);
}
-} // namespace base
-
template<typename STR>
-static STR JoinStringT(const std::vector<STR>& parts, const STR& sep) {
+static STR JoinStringT(const std::vector<STR>& parts,
+ BasicStringPiece<STR> sep) {
if (parts.empty())
return STR();
STR result(parts[0]);
- typename std::vector<STR>::const_iterator iter = parts.begin();
+ auto iter = parts.begin();
++iter;
for (; iter != parts.end(); ++iter) {
- result += sep;
+ sep.AppendToString(&result);
result += *iter;
}
return result;
}
-std::string JoinString(const std::vector<std::string>& parts, char sep) {
- return JoinStringT(parts, std::string(1, sep));
-}
-
-string16 JoinString(const std::vector<string16>& parts, char16 sep) {
- return JoinStringT(parts, string16(1, sep));
-}
-
std::string JoinString(const std::vector<std::string>& parts,
- const std::string& separator) {
+ StringPiece separator) {
return JoinStringT(parts, separator);
}
string16 JoinString(const std::vector<string16>& parts,
- const string16& separator) {
+ StringPiece16 separator) {
return JoinStringT(parts, separator);
}
+} // namespace base
+
template<class FormatStringType, class OutStringType>
OutStringType DoReplaceStringPlaceholders(const FormatStringType& format_string,
const std::vector<OutStringType>& subst, std::vector<size_t>* offsets) {
diff --git a/base/strings/string_util.h b/base/strings/string_util.h
index e4abce2..b75a9f88 100644
--- a/base/strings/string_util.h
+++ b/base/strings/string_util.h
@@ -491,6 +491,12 @@ BASE_EXPORT char16* WriteInto(base::string16* str, size_t length_with_null);
BASE_EXPORT wchar_t* WriteInto(std::wstring* str, size_t length_with_null);
#endif
+// Does the opposite of SplitString().
+BASE_EXPORT std::string JoinString(const std::vector<std::string>& parts,
+ StringPiece separator);
+BASE_EXPORT string16 JoinString(const std::vector<string16>& parts,
+ StringPiece16 separator);
+
} // namespace base
#if defined(OS_WIN)
@@ -501,22 +507,6 @@ BASE_EXPORT wchar_t* WriteInto(std::wstring* str, size_t length_with_null);
#error Define string operations appropriately for your platform
#endif
-//-----------------------------------------------------------------------------
-
-// Does the opposite of SplitString().
-BASE_EXPORT base::string16 JoinString(const std::vector<base::string16>& parts,
- base::char16 s);
-BASE_EXPORT std::string JoinString(
- const std::vector<std::string>& parts, char s);
-
-// Join |parts| using |separator|.
-BASE_EXPORT std::string JoinString(
- const std::vector<std::string>& parts,
- const std::string& separator);
-BASE_EXPORT base::string16 JoinString(
- const std::vector<base::string16>& parts,
- const base::string16& separator);
-
// Replace $1-$2-$3..$9 in the format string with |a|-|b|-|c|..|i| respectively.
// Additionally, any number of consecutive '$' characters is replaced by that
// number less one. Eg $$->$, $$$->$$, etc. The offsets parameter here can be
diff --git a/base/strings/string_util_unittest.cc b/base/strings/string_util_unittest.cc
index 1593f81..5d5ba8b 100644
--- a/base/strings/string_util_unittest.cc
+++ b/base/strings/string_util_unittest.cc
@@ -669,26 +669,7 @@ TEST(StringUtilTest, HexDigitToInt) {
EXPECT_EQ(15, HexDigitToInt('f'));
}
-// Test for JoinString
TEST(StringUtilTest, JoinString) {
- std::vector<std::string> in;
- EXPECT_EQ("", JoinString(in, ','));
-
- in.push_back("a");
- EXPECT_EQ("a", JoinString(in, ','));
-
- in.push_back("b");
- in.push_back("c");
- EXPECT_EQ("a,b,c", JoinString(in, ','));
-
- in.push_back(std::string());
- EXPECT_EQ("a,b,c,", JoinString(in, ','));
- in.push_back(" ");
- EXPECT_EQ("a|b|c|| ", JoinString(in, '|'));
-}
-
-// Test for JoinString overloaded with std::string separator
-TEST(StringUtilTest, JoinStringWithString) {
std::string separator(", ");
std::vector<std::string> parts;
EXPECT_EQ(std::string(), JoinString(parts, separator));
@@ -706,8 +687,7 @@ TEST(StringUtilTest, JoinStringWithString) {
EXPECT_EQ("a|b|c|| ", JoinString(parts, "|"));
}
-// Test for JoinString overloaded with string16 separator
-TEST(StringUtilTest, JoinStringWithString16) {
+TEST(StringUtilTest, JoinString16) {
string16 separator = ASCIIToUTF16(", ");
std::vector<string16> parts;
EXPECT_EQ(string16(), JoinString(parts, separator));
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc
index 2a56b6c..7c0bc4e 100644
--- a/base/test/launcher/test_launcher.cc
+++ b/base/test/launcher/test_launcher.cc
@@ -570,7 +570,7 @@ void TestLauncher::OnTestFinished(const TestResult& result) {
snippet_lines.begin() + truncated_size);
snippet_lines.insert(snippet_lines.begin(), "<truncated>");
}
- fprintf(stdout, "%s", JoinString(snippet_lines, "\n").c_str());
+ fprintf(stdout, "%s", base::JoinString(snippet_lines, "\n").c_str());
fflush(stdout);
}
diff --git a/base/test/launcher/test_launcher_ios.cc b/base/test/launcher/test_launcher_ios.cc
index ecd31ae..3179bb3 100644
--- a/base/test/launcher/test_launcher_ios.cc
+++ b/base/test/launcher/test_launcher_ios.cc
@@ -121,7 +121,7 @@ class IOSUnitTestPlatformDelegate : public base::UnitTestPlatformDelegate {
base::CommandLine cmd_line(dir_exe_.AppendASCII(test_name_ + ".app"));
cmd_line.AppendSwitchPath(switches::kTestLauncherOutput, output_file);
cmd_line.AppendSwitchASCII(base::kGTestFilterFlag,
- JoinString(test_names, ":"));
+ base::JoinString(test_names, ":"));
return cmd_line;
}
diff --git a/base/test/launcher/test_launcher_nacl_nonsfi.cc b/base/test/launcher/test_launcher_nacl_nonsfi.cc
index fa52604..bf117af 100644
--- a/base/test/launcher/test_launcher_nacl_nonsfi.cc
+++ b/base/test/launcher/test_launcher_nacl_nonsfi.cc
@@ -113,7 +113,7 @@ class NonSfiUnitTestPlatformDelegate : public base::UnitTestPlatformDelegate {
cmd_line.AppendSwitchPath(
switches::kTestLauncherOutput, output_file);
cmd_line.AppendSwitchASCII(
- base::kGTestFilterFlag, JoinString(test_names, ":"));
+ base::kGTestFilterFlag, base::JoinString(test_names, ":"));
return cmd_line;
}
diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc
index f01a888..cd8cf4a 100644
--- a/base/trace_event/trace_event_impl.cc
+++ b/base/trace_event/trace_event_impl.cc
@@ -2352,7 +2352,7 @@ void TraceLog::AddMetadataEventsWhileLocked() {
InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(NULL, false),
current_thread_id,
"process_labels", "labels",
- JoinString(labels, ','));
+ base::JoinString(labels, ","));
}
// Thread sort indices.