diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 20:42:06 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 20:42:06 +0000 |
commit | c03733152d359110e5d41895c2ecc20d75572054 (patch) | |
tree | e92aca64e5e8fe1a7c42775ac6e2fe8c7ed8ef5d /base/values.cc | |
parent | f8b470c658bf287f1a1c27e52e954a27fab54301 (diff) | |
download | chromium_src-c03733152d359110e5d41895c2ecc20d75572054.zip chromium_src-c03733152d359110e5d41895c2ecc20d75572054.tar.gz chromium_src-c03733152d359110e5d41895c2ecc20d75572054.tar.bz2 |
libaddressinput - reduce number of copies in storage class by 2
1. on the way in (Put)
2. on the way out (Get)
BUG=337679
Review URL: https://codereview.chromium.org/148463003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249102 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/values.cc')
-rw-r--r-- | base/values.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/base/values.cc b/base/values.cc index fa256aa..5c0b3a2 100644 --- a/base/values.cc +++ b/base/values.cc @@ -134,6 +134,10 @@ bool Value::GetAsString(string16* out_value) const { return false; } +bool Value::GetAsString(const StringValue** out_value) const { + return false; +} + bool Value::GetAsList(ListValue** out_value) { return false; } @@ -278,6 +282,14 @@ StringValue::StringValue(const string16& in_value) StringValue::~StringValue() { } +std::string* StringValue::GetString() { + return &value_; +} + +const std::string& StringValue::GetString() const { + return value_; +} + bool StringValue::GetAsString(std::string* out_value) const { if (out_value) *out_value = value_; @@ -290,6 +302,12 @@ bool StringValue::GetAsString(string16* out_value) const { return true; } +bool StringValue::GetAsString(const StringValue** out_value) const { + if (*out_value) + *out_value = this; + return true; +} + StringValue* StringValue::DeepCopy() const { return new StringValue(value_); } |