| Index: mojo/public/cpp/bindings/array.h
|
| diff --git a/mojo/public/cpp/bindings/array.h b/mojo/public/cpp/bindings/array.h
|
| index e765bb1a43eed4fb26ff53fcc346a7d5489dd840..b6b3f47712f33d1f9aa5e6627bfa9a5e740e4d65 100644
|
| --- a/mojo/public/cpp/bindings/array.h
|
| +++ b/mojo/public/cpp/bindings/array.h
|
| @@ -56,7 +56,11 @@ class Array {
|
| // Creates a non-null array of the specified size. The elements will be
|
| // value-initialized (meaning that they will be initialized by their default
|
| // constructor, if any, or else zero-initialized).
|
| - static Array New(size_t size) { return Array(size).Pass(); }
|
| + static Array New(size_t size) {
|
| + Array ret;
|
| + ret.resize(size);
|
| + return ret;
|
| + }
|
|
|
| // Creates a new array with a copy of the contents of |other|.
|
| template <typename U>
|
| @@ -256,7 +260,7 @@ class Array {
|
| template <typename T, typename E>
|
| struct TypeConverter<Array<T>, std::vector<E>> {
|
| static Array<T> Convert(const std::vector<E>& input) {
|
| - Array<T> result(input.size());
|
| + auto result = Array<T>::New(input.size());
|
| for (size_t i = 0; i < input.size(); ++i)
|
| result[i] = TypeConverter<T, E>::Convert(input[i]);
|
| return result.Pass();
|
| @@ -285,7 +289,7 @@ struct TypeConverter<std::vector<E>, Array<T>> {
|
| template <typename T, typename E>
|
| struct TypeConverter<Array<T>, std::set<E>> {
|
| static Array<T> Convert(const std::set<E>& input) {
|
| - Array<T> result(0u);
|
| + Array<T> result = Array<T>::New(0u);
|
| for (auto i : input)
|
| result.push_back(TypeConverter<T, E>::Convert(i));
|
| return result.Pass();
|
|
|