| Index: mojo/common/values_struct_traits.h
|
| diff --git a/mojo/common/values_struct_traits.h b/mojo/common/values_struct_traits.h
|
| index befcf3a6ea2816dd56e56f0a50933d9cec3548e0..9ef63b68da2cf84c74a95911b8a28d081f582afb 100644
|
| --- a/mojo/common/values_struct_traits.h
|
| +++ b/mojo/common/values_struct_traits.h
|
| @@ -17,7 +17,7 @@ namespace mojo {
|
|
|
| template <>
|
| struct ArrayTraits<base::ListValue> {
|
| - using Element = std::unique_ptr<base::Value>;
|
| + using Element = base::Value;
|
| using ConstIterator = base::ListValue::const_iterator;
|
|
|
| static size_t GetSize(const base::ListValue& input) {
|
| @@ -30,37 +30,20 @@ struct ArrayTraits<base::ListValue> {
|
|
|
| static void AdvanceIterator(ConstIterator& iterator) { ++iterator; }
|
|
|
| - static const Element& GetValue(ConstIterator& iterator) { return *iterator; }
|
| + static const Element& GetValue(ConstIterator& iterator) { return **iterator; }
|
| };
|
|
|
| template <>
|
| struct StructTraits<common::mojom::ListValueDataView, base::ListValue> {
|
| + static bool Read(common::mojom::ListValueDataView data,
|
| + base::ListValue* value);
|
| +
|
| static const base::ListValue& values(const base::ListValue& value) {
|
| return value;
|
| }
|
| };
|
|
|
| template <>
|
| -struct StructTraits<common::mojom::ListValueDataView,
|
| - std::unique_ptr<base::ListValue>> {
|
| - static bool IsNull(const std::unique_ptr<base::ListValue>& value) {
|
| - return !value;
|
| - }
|
| -
|
| - static void SetToNull(std::unique_ptr<base::ListValue>* value) {
|
| - value->reset();
|
| - }
|
| -
|
| - static const base::ListValue& values(
|
| - const std::unique_ptr<base::ListValue>& value) {
|
| - return *value;
|
| - }
|
| -
|
| - static bool Read(common::mojom::ListValueDataView data,
|
| - std::unique_ptr<base::ListValue>* value);
|
| -};
|
| -
|
| -template <>
|
| struct MapTraits<base::DictionaryValue> {
|
| using Key = std::string;
|
| using Value = base::Value;
|
| @@ -84,6 +67,9 @@ struct MapTraits<base::DictionaryValue> {
|
| template <>
|
| struct StructTraits<common::mojom::DictionaryValueDataView,
|
| base::DictionaryValue> {
|
| + static bool Read(common::mojom::DictionaryValueDataView data,
|
| + base::DictionaryValue* value);
|
| +
|
| static const base::DictionaryValue& values(
|
| const base::DictionaryValue& value) {
|
| return value;
|
| @@ -91,32 +77,9 @@ struct StructTraits<common::mojom::DictionaryValueDataView,
|
| };
|
|
|
| template <>
|
| -struct StructTraits<common::mojom::DictionaryValueDataView,
|
| - std::unique_ptr<base::DictionaryValue>> {
|
| - static bool IsNull(const std::unique_ptr<base::DictionaryValue>& value) {
|
| - return !value;
|
| - }
|
| -
|
| - static void SetToNull(std::unique_ptr<base::DictionaryValue>* value) {
|
| - value->reset();
|
| - }
|
| -
|
| - static const base::DictionaryValue& values(
|
| - const std::unique_ptr<base::DictionaryValue>& value) {
|
| - return *value;
|
| - }
|
| - static bool Read(common::mojom::DictionaryValueDataView data,
|
| - std::unique_ptr<base::DictionaryValue>* value);
|
| -};
|
| -
|
| -template <>
|
| -struct CloneTraits<std::unique_ptr<base::DictionaryValue>, false> {
|
| - static std::unique_ptr<base::DictionaryValue> Clone(
|
| - const std::unique_ptr<base::DictionaryValue>& input);
|
| -};
|
| -
|
| -template <>
|
| struct UnionTraits<common::mojom::ValueDataView, base::Value> {
|
| + static bool Read(common::mojom::ValueDataView data, base::Value* value);
|
| +
|
| static common::mojom::ValueDataView::Tag GetTag(const base::Value& data) {
|
| switch (data.GetType()) {
|
| case base::Value::Type::NONE:
|
| @@ -196,62 +159,6 @@ struct UnionTraits<common::mojom::ValueDataView, base::Value> {
|
| }
|
| };
|
|
|
| -template <>
|
| -struct UnionTraits<common::mojom::ValueDataView, std::unique_ptr<base::Value>> {
|
| - static bool IsNull(const std::unique_ptr<base::Value>& value) {
|
| - return !value;
|
| - }
|
| -
|
| - static void SetToNull(std::unique_ptr<base::Value>* value) { value->reset(); }
|
| -
|
| - static common::mojom::ValueDataView::Tag GetTag(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::GetTag(
|
| - *value);
|
| - }
|
| -
|
| - static common::mojom::NullValuePtr null_value(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::null_value(
|
| - *value);
|
| - }
|
| - static bool bool_value(const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::bool_value(
|
| - *value);
|
| - }
|
| - static int32_t int_value(const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::int_value(
|
| - *value);
|
| - }
|
| - static double double_value(const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::double_value(
|
| - *value);
|
| - }
|
| - static base::StringPiece string_value(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::string_value(
|
| - *value);
|
| - }
|
| - static mojo::ConstCArray<uint8_t> binary_value(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::binary_value(
|
| - *value);
|
| - }
|
| - static const base::ListValue& list_value(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView, base::Value>::list_value(
|
| - *value);
|
| - }
|
| - static const base::DictionaryValue& dictionary_value(
|
| - const std::unique_ptr<base::Value>& value) {
|
| - return UnionTraits<common::mojom::ValueDataView,
|
| - base::Value>::dictionary_value(*value);
|
| - }
|
| -
|
| - static bool Read(common::mojom::ValueDataView data,
|
| - std::unique_ptr<base::Value>* value);
|
| -};
|
| -
|
| } // namespace mojo
|
|
|
| #endif // MOJO_COMMON_VALUES_STRUCT_TRAITS_H_
|
|
|