Index: mojo/public/cpp/bindings/array_traits_stl.h |
diff --git a/mojo/public/cpp/bindings/array_traits_stl.h b/mojo/public/cpp/bindings/array_traits_stl.h |
index 51af5ad7a1b28dae51c5b4f77d449b0a115761c5..9054a920190cd455890b3263e366c1811b3ce574 100644 |
--- a/mojo/public/cpp/bindings/array_traits_stl.h |
+++ b/mojo/public/cpp/bindings/array_traits_stl.h |
@@ -43,7 +43,16 @@ struct ArrayTraits<std::vector<T>> { |
} |
static bool Resize(std::vector<T>& input, size_t size) { |
- input.resize(size); |
+ if (input.size() != size) { |
+ // This is a hack to make compilers for Mac and Android happy. They |
+ // currently don't allow resizing types like |
+ // std::vector<std::vector<MoveOnlyType>>. |
+ // Because the deserialization code doesn't care about the original |
+ // contents of |input|, we discard them directly. |
+ std::vector<T> temp(size); |
+ input.swap(temp); |
+ } |
+ |
return true; |
} |
}; |