| Index: ipc/ipc_message_utils.cc
|
| diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc
|
| index 9a8630dcc574a7819fb9f38414b66ef65acc5e61..8053318110d78f2eda9b81f9721a9070c59f6c29 100644
|
| --- a/ipc/ipc_message_utils.cc
|
| +++ b/ipc/ipc_message_utils.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/files/file_path.h"
|
| #include "base/json/json_writer.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/strings/nullable_string16.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -71,7 +72,7 @@ void LogBytes(const std::vector<CharType>& data, std::string* out) {
|
|
|
| bool ReadValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| - base::Value** value,
|
| + std::unique_ptr<base::Value>* value,
|
| int recursion);
|
|
|
| void GetValueSize(base::PickleSizer* sizer,
|
| @@ -218,11 +219,11 @@ bool ReadDictionaryValue(const base::Pickle* m,
|
|
|
| for (int i = 0; i < size; ++i) {
|
| std::string key;
|
| - base::Value* subval;
|
| + std::unique_ptr<base::Value> subval;
|
| if (!ReadParam(m, iter, &key) ||
|
| !ReadValue(m, iter, &subval, recursion + 1))
|
| return false;
|
| - value->SetWithoutPathExpansion(key, subval);
|
| + value->SetWithoutPathExpansion(key, std::move(subval));
|
| }
|
|
|
| return true;
|
| @@ -239,10 +240,10 @@ bool ReadListValue(const base::Pickle* m,
|
| return false;
|
|
|
| for (int i = 0; i < size; ++i) {
|
| - base::Value* subval;
|
| + std::unique_ptr<base::Value> subval;
|
| if (!ReadValue(m, iter, &subval, recursion + 1))
|
| return false;
|
| - value->Set(i, subval);
|
| + value->Set(i, std::move(subval));
|
| }
|
|
|
| return true;
|
| @@ -250,7 +251,7 @@ bool ReadListValue(const base::Pickle* m,
|
|
|
| bool ReadValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| - base::Value** value,
|
| + std::unique_ptr<base::Value>* value,
|
| int recursion) {
|
| if (recursion > kMaxRecursionDepth) {
|
| LOG(ERROR) << "Max recursion depth hit in ReadValue.";
|
| @@ -263,34 +264,34 @@ bool ReadValue(const base::Pickle* m,
|
|
|
| switch (static_cast<base::Value::Type>(type)) {
|
| case base::Value::Type::NONE:
|
| - *value = new base::Value();
|
| + *value = base::MakeUnique<base::Value>();
|
| break;
|
| case base::Value::Type::BOOLEAN: {
|
| bool val;
|
| if (!ReadParam(m, iter, &val))
|
| return false;
|
| - *value = new base::Value(val);
|
| + *value = base::MakeUnique<base::Value>(val);
|
| break;
|
| }
|
| case base::Value::Type::INTEGER: {
|
| int val;
|
| if (!ReadParam(m, iter, &val))
|
| return false;
|
| - *value = new base::Value(val);
|
| + *value = base::MakeUnique<base::Value>(val);
|
| break;
|
| }
|
| case base::Value::Type::DOUBLE: {
|
| double val;
|
| if (!ReadParam(m, iter, &val))
|
| return false;
|
| - *value = new base::Value(val);
|
| + *value = base::MakeUnique<base::Value>(val);
|
| break;
|
| }
|
| case base::Value::Type::STRING: {
|
| std::string val;
|
| if (!ReadParam(m, iter, &val))
|
| return false;
|
| - *value = new base::Value(val);
|
| + *value = base::MakeUnique<base::Value>(std::move(val));
|
| break;
|
| }
|
| case base::Value::Type::BINARY: {
|
| @@ -298,23 +299,21 @@ bool ReadValue(const base::Pickle* m,
|
| int length;
|
| if (!iter->ReadData(&data, &length))
|
| return false;
|
| - std::unique_ptr<base::Value> val =
|
| - base::Value::CreateWithCopiedBuffer(data, length);
|
| - *value = val.release();
|
| + *value = base::Value::CreateWithCopiedBuffer(data, length);
|
| break;
|
| }
|
| case base::Value::Type::DICTIONARY: {
|
| - std::unique_ptr<base::DictionaryValue> val(new base::DictionaryValue());
|
| - if (!ReadDictionaryValue(m, iter, val.get(), recursion))
|
| + base::DictionaryValue val;
|
| + if (!ReadDictionaryValue(m, iter, &val, recursion))
|
| return false;
|
| - *value = val.release();
|
| + *value = base::MakeUnique<base::Value>(std::move(val));
|
| break;
|
| }
|
| case base::Value::Type::LIST: {
|
| - std::unique_ptr<base::ListValue> val(new base::ListValue());
|
| - if (!ReadListValue(m, iter, val.get(), recursion))
|
| + base::ListValue val;
|
| + if (!ReadListValue(m, iter, &val, recursion))
|
| return false;
|
| - *value = val.release();
|
| + *value = base::MakeUnique<base::Value>(std::move(val));
|
| break;
|
| }
|
| default:
|
|
|