Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1199)

Unified Diff: mojo/common/values_struct_traits.h

Issue 2803023005: Switch base::Value typemapping to be by value instead of by unique_ptr.
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/common/values.typemap ('k') | mojo/common/values_struct_traits.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « mojo/common/values.typemap ('k') | mojo/common/values_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698