Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / libaddressinput / chromium / chrome_storage_impl.cc
index 2cd8c01..b9d6d8b 100644 (file)
@@ -7,6 +7,8 @@
 #include "base/prefs/writeable_pref_store.h"
 #include "base/values.h"
 
+namespace autofill {
+
 ChromeStorageImpl::ChromeStorageImpl(WriteablePrefStore* store)
     : backing_store_(store),
       scoped_observer_(this) {
@@ -15,8 +17,12 @@ ChromeStorageImpl::ChromeStorageImpl(WriteablePrefStore* store)
 
 ChromeStorageImpl::~ChromeStorageImpl() {}
 
-void ChromeStorageImpl::Put(const std::string& key, const std::string& data) {
-  backing_store_->SetValue(key, new base::StringValue(data));
+void ChromeStorageImpl::Put(const std::string& key,
+                            scoped_ptr<std::string> data) {
+  scoped_ptr<base::StringValue> string_value(
+      new base::StringValue(std::string()));
+  string_value->GetString()->swap(*data);
+  backing_store_->SetValue(key, string_value.release());
 }
 
 void ChromeStorageImpl::Get(
@@ -47,11 +53,11 @@ void ChromeStorageImpl::DoGet(
     return;
   }
 
-  const base::Value* value;
-  std::string result;
+  const base::Value* value = NULL;
+  const base::StringValue* string_value = NULL;
   if (backing_store_->GetValue(key, &value) &&
-      value->GetAsString(&result)) {
-    (*data_ready)(true, key, result);
+      value->GetAsString(&string_value)) {
+    (*data_ready)(true, key, string_value->GetString());
   } else {
     (*data_ready)(false, key, std::string());
   }
@@ -61,3 +67,5 @@ ChromeStorageImpl::Request::Request(const std::string& key,
                                     scoped_ptr<Storage::Callback> callback)
     : key(key),
       callback(callback.Pass()) {}
+
+}  // namespace autofill