@@ -31,7 +31,7 @@ rmw_ret_t
3131rmw_message_sequence_init (
3232 rmw_message_sequence_t * sequence ,
3333 size_t size ,
34- const rcutils_allocator_t * allocator )
34+ rcutils_allocator_t * allocator )
3535{
3636 RCUTILS_CHECK_ARGUMENT_FOR_NULL (sequence , RMW_RET_INVALID_ARGUMENT );
3737 RCUTILS_CHECK_ALLOCATOR (allocator , return RMW_RET_INVALID_ARGUMENT );
@@ -47,29 +47,27 @@ rmw_message_sequence_init(
4747 sequence -> data = data ;
4848 sequence -> size = 0 ;
4949 sequence -> capacity = size ;
50+ sequence -> allocator = allocator ;
5051
5152 return RMW_RET_OK ;
5253}
5354
5455rmw_ret_t
55- rmw_message_sequence_fini (
56- rmw_message_sequence_t * sequence ,
57- const rcutils_allocator_t * allocator )
56+ rmw_message_sequence_fini (rmw_message_sequence_t * sequence )
5857{
5958 RCUTILS_CHECK_ARGUMENT_FOR_NULL (sequence , RMW_RET_INVALID_ARGUMENT );
60- RCUTILS_CHECK_ALLOCATOR (allocator , return RMW_RET_INVALID_ARGUMENT );
6159
6260 if (sequence -> data ) {
6361 assert (sequence -> capacity > 0 );
64- allocator -> deallocate (sequence -> data , allocator -> state );
65- sequence -> data = NULL ;
66- sequence -> size = 0u ;
67- sequence -> capacity = 0u ;
68- } else {
69- assert (0 == sequence -> size );
70- assert (0 == sequence -> capacity );
62+ RCUTILS_CHECK_ALLOCATOR (sequence -> allocator , return RMW_RET_INVALID_ARGUMENT );
63+ sequence -> allocator -> deallocate (sequence -> data , sequence -> allocator -> state );
7164 }
7265
66+ sequence -> data = NULL ;
67+ sequence -> size = 0u ;
68+ sequence -> capacity = 0u ;
69+ sequence -> allocator = NULL ;
70+
7371 return RMW_RET_OK ;
7472}
7573
@@ -79,7 +77,8 @@ rmw_get_zero_initialized_message_info_sequence(void)
7977 static rmw_message_info_sequence_t message_info_sequence = {
8078 .data = NULL ,
8179 .size = 0u ,
82- .capacity = 0u
80+ .capacity = 0u ,
81+ .allocator = NULL
8382 };
8483
8584 return message_info_sequence ;
@@ -89,7 +88,7 @@ rmw_ret_t
8988rmw_message_info_sequence_init (
9089 rmw_message_info_sequence_t * sequence ,
9190 size_t size ,
92- const rcutils_allocator_t * allocator )
91+ rcutils_allocator_t * allocator )
9392{
9493 RCUTILS_CHECK_ARGUMENT_FOR_NULL (sequence , RMW_RET_INVALID_ARGUMENT );
9594 RCUTILS_CHECK_ALLOCATOR (allocator , return RMW_RET_INVALID_ARGUMENT );
@@ -104,27 +103,26 @@ rmw_message_info_sequence_init(
104103 sequence -> data = data ;
105104 sequence -> size = 0u ;
106105 sequence -> capacity = size ;
106+ sequence -> allocator = allocator ;
107+
107108 return RMW_RET_OK ;
108109}
109110
110111rmw_ret_t
111- rmw_message_info_sequence_fini (
112- rmw_message_info_sequence_t * sequence ,
113- const rcutils_allocator_t * allocator )
112+ rmw_message_info_sequence_fini (rmw_message_info_sequence_t * sequence )
114113{
115114 RCUTILS_CHECK_ARGUMENT_FOR_NULL (sequence , RMW_RET_INVALID_ARGUMENT );
116- RCUTILS_CHECK_ALLOCATOR (allocator , return RMW_RET_INVALID_ARGUMENT );
117115
118116 if (sequence -> data ) {
119117 assert (sequence -> capacity > 0 );
120- allocator -> deallocate (sequence -> data , allocator -> state );
121- sequence -> data = NULL ;
122- sequence -> size = 0u ;
123- sequence -> capacity = 0u ;
124- } else {
125- assert (0 == sequence -> size );
126- assert (0 == sequence -> capacity );
118+ RCUTILS_CHECK_ALLOCATOR (sequence -> allocator , return RMW_RET_INVALID_ARGUMENT );
119+ sequence -> allocator -> deallocate (sequence -> data , sequence -> allocator -> state );
127120 }
128121
122+ sequence -> data = NULL ;
123+ sequence -> size = 0u ;
124+ sequence -> capacity = 0u ;
125+ sequence -> allocator = NULL ;
126+
129127 return RMW_RET_OK ;
130128}
0 commit comments