1818
1919#define MIN (a , b ) ((a) < (b) ? (a) : (b))
2020
21- #define RCUTILS_VALIDATE_CHAR_ARRAY (char_array ) \
22- RCUTILS_CHECK_FOR_NULL_WITH_MSG( \
23- char_array, \
24- "char array pointer is null", \
25- return RCUTILS_RET_ERROR);
26-
27- #define RCUTILS_VALIDATE_ALLOCATOR (allocator ) \
28- if (!rcutils_allocator_is_valid(allocator)) { \
29- RCUTILS_SET_ERROR_MSG("char array has no valid allocator"); \
30- return RCUTILS_RET_ERROR; \
31- }
32-
3321rcutils_char_array_t
3422rcutils_get_zero_initialized_char_array (void )
3523{
@@ -49,8 +37,9 @@ rcutils_char_array_init(
4937 size_t buffer_capacity ,
5038 const rcutils_allocator_t * allocator )
5139{
52- RCUTILS_VALIDATE_CHAR_ARRAY (char_array );
53- RCUTILS_VALIDATE_ALLOCATOR (allocator );
40+ RCUTILS_CHECK_ARGUMENT_FOR_NULL (char_array , RCUTILS_RET_ERROR );
41+ RCUTILS_CHECK_ALLOCATOR_WITH_MSG (allocator , "char array has no valid allocator" ,
42+ return RCUTILS_RET_ERROR );
5443
5544 char_array -> owns_buffer = true;
5645 char_array -> buffer_length = 0lu ;
@@ -74,16 +63,16 @@ rcutils_char_array_init(
7463rcutils_ret_t
7564rcutils_char_array_fini (rcutils_char_array_t * char_array )
7665{
77- RCUTILS_VALIDATE_CHAR_ARRAY (char_array );
66+ RCUTILS_CHECK_ARGUMENT_FOR_NULL (char_array , RCUTILS_RET_ERROR );
7867
79- if (!char_array -> owns_buffer ) {
80- return RCUTILS_RET_OK ;
81- }
68+ if (char_array -> owns_buffer ) {
69+ rcutils_allocator_t * allocator = & char_array -> allocator ;
70+ RCUTILS_CHECK_ALLOCATOR_WITH_MSG (allocator , "char array has no valid allocator" ,
71+ return RCUTILS_RET_ERROR );
8272
83- rcutils_allocator_t * allocator = & char_array -> allocator ;
84- RCUTILS_VALIDATE_ALLOCATOR ( allocator );
73+ allocator -> deallocate ( char_array -> buffer , allocator -> state ) ;
74+ }
8575
86- allocator -> deallocate (char_array -> buffer , allocator -> state );
8776 char_array -> buffer = NULL ;
8877 char_array -> buffer_length = 0lu ;
8978 char_array -> buffer_capacity = 0lu ;
@@ -94,15 +83,16 @@ rcutils_char_array_fini(rcutils_char_array_t * char_array)
9483rcutils_ret_t
9584rcutils_char_array_resize (rcutils_char_array_t * char_array , size_t new_size )
9685{
97- RCUTILS_VALIDATE_CHAR_ARRAY (char_array );
86+ RCUTILS_CHECK_ARGUMENT_FOR_NULL (char_array , RCUTILS_RET_ERROR );
9887
9988 if (0lu == new_size ) {
10089 RCUTILS_SET_ERROR_MSG ("new size of char_array has to be greater than zero" );
10190 return RCUTILS_RET_INVALID_ARGUMENT ;
10291 }
10392
10493 rcutils_allocator_t * allocator = & char_array -> allocator ;
105- RCUTILS_VALIDATE_ALLOCATOR (allocator );
94+ RCUTILS_CHECK_ALLOCATOR_WITH_MSG (allocator , "char array has no valid allocator" ,
95+ return RCUTILS_RET_ERROR );
10696
10797 if (new_size == char_array -> buffer_capacity ) {
10898 // nothing to do here
@@ -113,13 +103,13 @@ rcutils_char_array_resize(rcutils_char_array_t * char_array, size_t new_size)
113103 size_t old_size = char_array -> buffer_capacity ;
114104 size_t old_length = char_array -> buffer_length ;
115105
116- if (char_array -> owns_buffer ) { // we own the buffer, we can do whatever we want
106+ if (char_array -> owns_buffer ) { // we own the buffer, we can do whatever we want
117107 char_array -> buffer = rcutils_reallocf (char_array -> buffer , new_size * sizeof (char ), allocator );
118108 RCUTILS_CHECK_FOR_NULL_WITH_MSG (
119- char_array -> buffer ,
120- "failed to reallocate memory for char array" ,
121- return RCUTILS_RET_BAD_ALLOC );
122- } else { // we don't realloc memory we don't own. instead, we alloc some new space
109+ char_array -> buffer ,
110+ "failed to reallocate memory for char array" ,
111+ return RCUTILS_RET_BAD_ALLOC );
112+ } else { // we don't realloc memory we don't own. instead, we alloc some new space
123113 rcutils_ret_t ret = rcutils_char_array_init (char_array , new_size , allocator );
124114 if (ret != RCUTILS_RET_OK ) {
125115 return ret ;
@@ -136,9 +126,9 @@ rcutils_char_array_resize(rcutils_char_array_t * char_array, size_t new_size)
136126}
137127
138128rcutils_ret_t
139- rcutils_char_array_expand_as_needed (rcutils_char_array_t * char_array , size_t new_size )
129+ rcutils_char_array_expand_as_needed (rcutils_char_array_t * char_array , size_t new_size )
140130{
141- RCUTILS_VALIDATE_CHAR_ARRAY (char_array );
131+ RCUTILS_CHECK_ARGUMENT_FOR_NULL (char_array , RCUTILS_RET_ERROR );
142132
143133 if (new_size <= char_array -> buffer_capacity ) {
144134 return RCUTILS_RET_OK ;
@@ -148,12 +138,13 @@ rcutils_char_array_expand_as_needed(rcutils_char_array_t *char_array, size_t new
148138}
149139
150140static int
151- _rcutils_char_array_vsprintf (rcutils_char_array_t * char_array , const char * format , va_list args )
141+ _rcutils_char_array_vsprintf (rcutils_char_array_t * char_array , const char * format , va_list args )
152142{
153143 va_list args_clone ;
154144 va_copy (args_clone , args );
155145
156- // when doing size calculation, remember the return value of vsnprintf excludes terminating null byte
146+ // when doing size calculation, remember the return value of vsnprintf excludes terminating null
147+ // byte
157148 int size = vsnprintf (char_array -> buffer , char_array -> buffer_capacity , format , args_clone );
158149
159150 va_end (args_clone );
@@ -162,7 +153,7 @@ _rcutils_char_array_vsprintf(rcutils_char_array_t *char_array, const char *forma
162153}
163154
164155rcutils_ret_t
165- rcutils_char_array_vsprintf (rcutils_char_array_t * char_array , const char * format , va_list args )
156+ rcutils_char_array_vsprintf (rcutils_char_array_t * char_array , const char * format , va_list args )
166157{
167158 int size = _rcutils_char_array_vsprintf (char_array , format , args );
168159
@@ -171,7 +162,7 @@ rcutils_char_array_vsprintf(rcutils_char_array_t * char_array, const char *forma
171162 return RCUTILS_RET_ERROR ;
172163 }
173164
174- size_t new_size = (size_t ) size + 1 ; // with the terminating null byte
165+ size_t new_size = (size_t ) size + 1 ; // with the terminating null byte
175166
176167 if (new_size > char_array -> buffer_capacity ) {
177168 rcutils_ret_t ret = rcutils_char_array_expand_as_needed (char_array , new_size );
@@ -211,7 +202,7 @@ rcutils_char_array_memcpy(rcutils_char_array_t * char_array, const char * src, s
211202rcutils_ret_t
212203rcutils_char_array_strcpy (rcutils_char_array_t * char_array , const char * src )
213204{
214- return rcutils_char_array_memcpy (char_array , src , strlen (src ) + 1 );
205+ return rcutils_char_array_memcpy (char_array , src , strlen (src ) + 1 );
215206}
216207
217208rcutils_ret_t
0 commit comments