Index: mojo/common/values_struct_traits.cc |
diff --git a/mojo/common/values_struct_traits.cc b/mojo/common/values_struct_traits.cc |
index 6d392ecabdeba15e8875490d259ba67262dcd59e..12e5173e5eadbf1854d3b4a6531f9ea4d9bbb972 100644 |
--- a/mojo/common/values_struct_traits.cc |
+++ b/mojo/common/values_struct_traits.cc |
@@ -48,9 +48,7 @@ bool StructTraits<common::mojom::DictionaryValueDataView, |
std::unique_ptr<base::DictionaryValue> |
CloneTraits<std::unique_ptr<base::DictionaryValue>, false>::Clone( |
const std::unique_ptr<base::DictionaryValue>& input) { |
- auto result = base::MakeUnique<base::DictionaryValue>(); |
- result->MergeDictionary(input.get()); |
- return result; |
+ return input ? input->CreateDeepCopy() : nullptr; |
} |
bool UnionTraits<common::mojom::ValueDataView, std::unique_ptr<base::Value>>:: |
@@ -106,4 +104,10 @@ bool UnionTraits<common::mojom::ValueDataView, std::unique_ptr<base::Value>>:: |
return false; |
} |
+std::unique_ptr<base::Value> |
+CloneTraits<std::unique_ptr<base::Value>, false>::Clone( |
+ const std::unique_ptr<base::Value>& input) { |
+ return input ? input->CreateDeepCopy() : nullptr; |
+} |
+ |
} // namespace mojo |