@@ -171,11 +171,8 @@ rcl_ros_clock_fini(
171171 return RCL_RET_ERROR ;
172172 }
173173 rcl_clock_generic_fini (clock );
174- if (!clock -> data ) {
175- RCL_SET_ERROR_MSG ("clock data invalid" );
176- return RCL_RET_ERROR ;
177- }
178- clock -> allocator .deallocate ((rcl_ros_clock_storage_t * )clock -> data , clock -> allocator .state );
174+ clock -> allocator .deallocate (clock -> data , clock -> allocator .state );
175+ clock -> data = NULL ;
179176 return RCL_RET_OK ;
180177}
181178
@@ -293,10 +290,8 @@ rcl_enable_ros_time_override(rcl_clock_t * clock)
293290 return RCL_RET_ERROR ;
294291 }
295292 rcl_ros_clock_storage_t * storage = (rcl_ros_clock_storage_t * )clock -> data ;
296- if (!storage ) {
297- RCL_SET_ERROR_MSG ("Clock storage is not initialized, cannot enable override." );
298- return RCL_RET_ERROR ;
299- }
293+ RCL_CHECK_FOR_NULL_WITH_MSG (
294+ storage , "Clock storage is not initialized, cannot enable override." , return RCL_RET_ERROR );
300295 if (!storage -> active ) {
301296 rcl_time_jump_t time_jump ;
302297 time_jump .delta .nanoseconds = 0 ;
@@ -316,12 +311,9 @@ rcl_disable_ros_time_override(rcl_clock_t * clock)
316311 RCL_SET_ERROR_MSG ("Clock is not of type RCL_ROS_TIME, cannot disable override." );
317312 return RCL_RET_ERROR ;
318313 }
319- rcl_ros_clock_storage_t * storage = \
320- (rcl_ros_clock_storage_t * )clock -> data ;
321- if (!storage ) {
322- RCL_SET_ERROR_MSG ("Clock storage is not initialized, cannot disable override." );
323- return RCL_RET_ERROR ;
324- }
314+ rcl_ros_clock_storage_t * storage = (rcl_ros_clock_storage_t * )clock -> data ;
315+ RCL_CHECK_FOR_NULL_WITH_MSG (
316+ storage , "Clock storage is not initialized, cannot enable override." , return RCL_RET_ERROR );
325317 if (storage -> active ) {
326318 rcl_time_jump_t time_jump ;
327319 time_jump .delta .nanoseconds = 0 ;
@@ -344,12 +336,9 @@ rcl_is_enabled_ros_time_override(
344336 RCL_SET_ERROR_MSG ("Clock is not of type RCL_ROS_TIME, cannot query override state." );
345337 return RCL_RET_ERROR ;
346338 }
347- rcl_ros_clock_storage_t * storage = \
348- (rcl_ros_clock_storage_t * )clock -> data ;
349- if (!storage ) {
350- RCL_SET_ERROR_MSG ("Clock storage is not initialized, cannot query override state." );
351- return RCL_RET_ERROR ;
352- }
339+ rcl_ros_clock_storage_t * storage = (rcl_ros_clock_storage_t * )clock -> data ;
340+ RCL_CHECK_FOR_NULL_WITH_MSG (
341+ storage , "Clock storage is not initialized, cannot enable override." , return RCL_RET_ERROR );
353342 * is_enabled = storage -> active ;
354343 return RCL_RET_OK ;
355344}
@@ -364,8 +353,10 @@ rcl_set_ros_time_override(
364353 RCL_SET_ERROR_MSG ("Clock is not of type RCL_ROS_TIME, cannot set time override." );
365354 return RCL_RET_ERROR ;
366355 }
367- rcl_time_jump_t time_jump ;
368356 rcl_ros_clock_storage_t * storage = (rcl_ros_clock_storage_t * )clock -> data ;
357+ RCL_CHECK_FOR_NULL_WITH_MSG (
358+ storage , "Clock storage is not initialized, cannot enable override." , return RCL_RET_ERROR );
359+ rcl_time_jump_t time_jump ;
369360 if (storage -> active ) {
370361 time_jump .clock_change = RCL_ROS_TIME_NO_CHANGE ;
371362 rcl_time_point_value_t current_time ;
@@ -453,19 +444,18 @@ rcl_clock_remove_jump_callback(
453444 }
454445
455446 // Shrink size of the callback array
456- if (clock -> num_jump_callbacks == 1 ) {
447+ if (-- ( clock -> num_jump_callbacks ) == 0 ) {
457448 clock -> allocator .deallocate (clock -> jump_callbacks , clock -> allocator .state );
458449 clock -> jump_callbacks = NULL ;
459450 } else {
460451 rcl_jump_callback_info_t * callbacks = clock -> allocator .reallocate (
461- clock -> jump_callbacks , sizeof (rcl_jump_callback_info_t ) * ( clock -> num_jump_callbacks - 1 ) ,
452+ clock -> jump_callbacks , sizeof (rcl_jump_callback_info_t ) * clock -> num_jump_callbacks ,
462453 clock -> allocator .state );
463454 if (NULL == callbacks ) {
464455 RCL_SET_ERROR_MSG ("Failed to shrink jump callbacks" );
465456 return RCL_RET_BAD_ALLOC ;
466457 }
467458 clock -> jump_callbacks = callbacks ;
468459 }
469- -- (clock -> num_jump_callbacks );
470460 return RCL_RET_OK ;
471461}
0 commit comments