diff options
author | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 07:35:27 +0000 |
---|---|---|
committer | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 07:35:27 +0000 |
commit | 7eac0c3f0afbdb9080cfe97505743e4dccb6940c (patch) | |
tree | b9d62c87dcf3f6414b349c68c2d14143f42b1b90 /base | |
parent | 2847450d99aaab5384885a810ec4ff99bde0f5b9 (diff) | |
download | chromium_src-7eac0c3f0afbdb9080cfe97505743e4dccb6940c.zip chromium_src-7eac0c3f0afbdb9080cfe97505743e4dccb6940c.tar.gz chromium_src-7eac0c3f0afbdb9080cfe97505743e4dccb6940c.tar.bz2 |
Let JsonDoubleQuote accept StringPiece
So that the functions can escape 'const char*' or 'const char16*'
without creating a std::string or string16 object for the parameter.
BUG=none
TEST=StringEscapeTest.JsonDoubleQuoteNarrow
Review URL: https://chromiumcodereview.appspot.com/18648003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221625 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/json/string_escape.cc | 8 | ||||
-rw-r--r-- | base/json/string_escape.h | 10 | ||||
-rw-r--r-- | base/json/string_escape_unittest.cc | 8 |
3 files changed, 15 insertions, 11 deletions
diff --git a/base/json/string_escape.cc b/base/json/string_escape.cc index eaa73ce..10ea670 100644 --- a/base/json/string_escape.cc +++ b/base/json/string_escape.cc @@ -78,25 +78,25 @@ void JsonDoubleQuoteT(const STR& str, } // namespace -void JsonDoubleQuote(const std::string& str, +void JsonDoubleQuote(const StringPiece& str, bool put_in_quotes, std::string* dst) { JsonDoubleQuoteT(str, put_in_quotes, dst); } -std::string GetDoubleQuotedJson(const std::string& str) { +std::string GetDoubleQuotedJson(const StringPiece& str) { std::string dst; JsonDoubleQuote(str, true, &dst); return dst; } -void JsonDoubleQuote(const string16& str, +void JsonDoubleQuote(const StringPiece16& str, bool put_in_quotes, std::string* dst) { JsonDoubleQuoteT(str, put_in_quotes, dst); } -std::string GetDoubleQuotedJson(const string16& str) { +std::string GetDoubleQuotedJson(const StringPiece16& str) { std::string dst; JsonDoubleQuote(str, true, &dst); return dst; diff --git a/base/json/string_escape.h b/base/json/string_escape.h index 5efc350..0f16f59 100644 --- a/base/json/string_escape.h +++ b/base/json/string_escape.h @@ -10,7 +10,7 @@ #include <string> #include "base/base_export.h" -#include "base/strings/string16.h" +#include "base/strings/string_piece.h" namespace base { @@ -19,19 +19,19 @@ namespace base { // If |put_in_quotes| is true, the result will be surrounded in double quotes. // The outputted literal, when interpreted by the browser, should result in a // javascript string that is identical and the same length as the input |str|. -BASE_EXPORT void JsonDoubleQuote(const std::string& str, +BASE_EXPORT void JsonDoubleQuote(const StringPiece& str, bool put_in_quotes, std::string* dst); // Same as above, but always returns the result double quoted. -BASE_EXPORT std::string GetDoubleQuotedJson(const std::string& str); +BASE_EXPORT std::string GetDoubleQuotedJson(const StringPiece& str); -BASE_EXPORT void JsonDoubleQuote(const string16& str, +BASE_EXPORT void JsonDoubleQuote(const StringPiece16& str, bool put_in_quotes, std::string* dst); // Same as above, but always returns the result double quoted. -BASE_EXPORT std::string GetDoubleQuotedJson(const string16& str); +BASE_EXPORT std::string GetDoubleQuotedJson(const StringPiece16& str); } // namespace base diff --git a/base/json/string_escape_unittest.cc b/base/json/string_escape_unittest.cc index 8952ee7..f921994 100644 --- a/base/json/string_escape_unittest.cc +++ b/base/json/string_escape_unittest.cc @@ -25,9 +25,13 @@ const struct json_narrow_test_data { TEST(StringEscapeTest, JsonDoubleQuoteNarrow) { for (size_t i = 0; i < arraysize(json_narrow_cases); ++i) { - std::string in = json_narrow_cases[i].to_escape; + const char* in_ptr = json_narrow_cases[i].to_escape; + std::string in_str = in_ptr; std::string out; - JsonDoubleQuote(in, false, &out); + JsonDoubleQuote(in_ptr, false, &out); + EXPECT_EQ(std::string(json_narrow_cases[i].escaped), out); + out.erase(); + JsonDoubleQuote(in_str, false, &out); EXPECT_EQ(std::string(json_narrow_cases[i].escaped), out); } |