Chromium Code Reviews| Index: mojo/public/cpp/bindings/wtf_array.h |
| diff --git a/mojo/public/cpp/bindings/wtf_array.h b/mojo/public/cpp/bindings/wtf_array.h |
| index b5d1a30c36304ace290d60d6735919ec408083fd..d693ad9e1eed684bd35351640c713fef14c6f9eb 100644 |
| --- a/mojo/public/cpp/bindings/wtf_array.h |
| +++ b/mojo/public/cpp/bindings/wtf_array.h |
| @@ -16,6 +16,10 @@ |
| #include "mojo/public/cpp/bindings/type_converter.h" |
| #include "third_party/WebKit/Source/wtf/Vector.h" |
| +namespace blink { |
| +class HeapAllocator; |
| +} |
| + |
| namespace mojo { |
| // Represents an array backed by WTF::Vector. Comparing with WTF::Vector, |
| @@ -230,6 +234,21 @@ class WTFArray { |
| bool is_null_; |
| }; |
| +// A |TypeConverter| that will create a |WTFArray<T>| containing a copy of the |
| +// contents of a |WTF::Vector<E, 0, blink::HeapAllocator>|, using |
| +// |TypeConverter<T, E>| to copy each element. The returned array will always be |
| +// non-null. |
| +template <typename T, typename E> |
| +struct TypeConverter<WTFArray<T>, WTF::Vector<E, 0, blink::HeapAllocator>> { |
|
yzshen1
2016/03/29 22:49:31
Is it a common operation to use a non-default allo
please use gerrit instead
2016/03/29 23:08:11
The blink::HeapAllocator is used in blink::HeapVec
yzshen1
2016/03/29 23:20:15
I mean, this TypeConverter is a deep copy.
|
| + static WTFArray<T> Convert( |
| + const WTF::Vector<E, 0, blink::HeapAllocator>& input) { |
| + WTFArray<T> result(input.size()); |
| + for (size_t i = 0; i < input.size(); ++i) |
| + result[i] = TypeConverter<T, E>::Convert(input[i]); |
| + return std::move(result); |
| + } |
| +}; |
| + |
| } // namespace mojo |
| #endif // MOJO_PUBLIC_CPP_BINDINGS_WTF_ARRAY_H_ |