| Index: mojo/public/cpp/bindings/lib/array_serialization.h
|
| diff --git a/mojo/public/cpp/bindings/lib/array_serialization.h b/mojo/public/cpp/bindings/lib/array_serialization.h
|
| index acfd4e3ec63892799dbc24b77c8a4edf330d3381..d2f8ecfd725cb2c6f6e3ec456354f4d3e999e243 100644
|
| --- a/mojo/public/cpp/bindings/lib/array_serialization.h
|
| +++ b/mojo/public/cpp/bindings/lib/array_serialization.h
|
| @@ -288,8 +288,17 @@ struct ArraySerializer<
|
|
|
| static size_t GetSerializedSize(UserTypeIterator* input,
|
| SerializationContext* context) {
|
| - return sizeof(Data) +
|
| - Align(input->GetSize() * sizeof(typename Data::Element));
|
| + size_t element_count = input->GetSize();
|
| + if (BelongsTo<Element,
|
| + MojomTypeCategory::ASSOCIATED_INTERFACE |
|
| + MojomTypeCategory::ASSOCIATED_INTERFACE_REQUEST>::value) {
|
| + for (size_t i = 0; i < element_count; ++i) {
|
| + typename UserTypeIterator::GetNextResult next = input->GetNext();
|
| + size_t size = PrepareToSerialize<Element>(next, context);
|
| + DCHECK_EQ(size, 0u);
|
| + }
|
| + }
|
| + return sizeof(Data) + Align(element_count * sizeof(typename Data::Element));
|
| }
|
|
|
| static void SerializeElements(UserTypeIterator* input,
|
|
|