| Index: cc/ipc/shared_quad_state_struct_traits.h
|
| diff --git a/cc/ipc/shared_quad_state_struct_traits.h b/cc/ipc/shared_quad_state_struct_traits.h
|
| index 675e6dcc2699e8014b4dceaa60ef2dcf208c47e0..7b5dde7e1a2086b3233c40b7f88b27d2c8d4be99 100644
|
| --- a/cc/ipc/shared_quad_state_struct_traits.h
|
| +++ b/cc/ipc/shared_quad_state_struct_traits.h
|
| @@ -62,6 +62,53 @@ struct StructTraits<cc::mojom::SharedQuadState, cc::SharedQuadState> {
|
| }
|
| };
|
|
|
| +struct SharedQuadStateListArray {
|
| + cc::SharedQuadStateList* list;
|
| +};
|
| +
|
| +template <>
|
| +struct ArrayTraits<SharedQuadStateListArray> {
|
| + using Element = cc::SharedQuadState;
|
| + using Iterator = cc::SharedQuadStateList::Iterator;
|
| + using ConstIterator = cc::SharedQuadStateList::ConstIterator;
|
| +
|
| + static ConstIterator GetBegin(const SharedQuadStateListArray& input) {
|
| + return input.list->begin();
|
| + }
|
| + static Iterator GetBegin(SharedQuadStateListArray& input) {
|
| + return input.list->begin();
|
| + }
|
| + static void AdvanceIterator(ConstIterator& iterator) { ++iterator; }
|
| + static void AdvanceIterator(Iterator& iterator) { ++iterator; }
|
| + static const Element& GetValue(ConstIterator& iterator) { return **iterator; }
|
| + static Element& GetValue(Iterator& iterator) { return **iterator; }
|
| + static size_t GetSize(const SharedQuadStateListArray& input) {
|
| + return input.list->size();
|
| + }
|
| + static bool Resize(SharedQuadStateListArray& input, size_t size) {
|
| + if (input.list->size() == size)
|
| + return true;
|
| + input.list->clear();
|
| + for (size_t i = 0; i < size; ++i)
|
| + input.list->AllocateAndConstruct<cc::SharedQuadState>();
|
| + return true;
|
| + }
|
| +};
|
| +
|
| +template <>
|
| +struct StructTraits<cc::mojom::SharedQuadStateList, cc::SharedQuadStateList> {
|
| + static SharedQuadStateListArray shared_quad_states(
|
| + const cc::SharedQuadStateList& list) {
|
| + return {const_cast<cc::SharedQuadStateList*>(&list)};
|
| + }
|
| +
|
| + static bool Read(cc::mojom::SharedQuadStateListDataView data,
|
| + cc::SharedQuadStateList* out) {
|
| + SharedQuadStateListArray sqs_array = {out};
|
| + return data.ReadSharedQuadStates(&sqs_array);
|
| + }
|
| +};
|
| +
|
| } // namespace mojo
|
|
|
| #endif // CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_
|
|
|