@@ -48,13 +48,14 @@ rcl_get_system_time(void * data, rcl_time_point_value_t * current_time)
4848
4949// Internal method for zeroing values on init, assumes clock is valid
5050static void
51- rcl_init_generic_clock (rcl_clock_t * clock )
51+ rcl_init_generic_clock (rcl_clock_t * clock , rcl_allocator_t * allocator )
5252{
5353 clock -> type = RCL_CLOCK_UNINITIALIZED ;
5454 clock -> jump_callbacks = NULL ;
5555 clock -> num_jump_callbacks = 0u ;
5656 clock -> get_now = NULL ;
5757 clock -> data = NULL ;
58+ clock -> allocator = * allocator ;
5859}
5960
6061// The function used to get the current ros time.
@@ -91,7 +92,7 @@ rcl_clock_init(
9192 switch (clock_type ) {
9293 case RCL_CLOCK_UNINITIALIZED :
9394 RCL_CHECK_ARGUMENT_FOR_NULL (clock , RCL_RET_INVALID_ARGUMENT );
94- rcl_init_generic_clock (clock );
95+ rcl_init_generic_clock (clock , allocator );
9596 return RCL_RET_OK ;
9697 case RCL_ROS_TIME :
9798 return rcl_ros_clock_init (clock , allocator );
@@ -144,7 +145,7 @@ rcl_ros_clock_init(
144145{
145146 RCL_CHECK_ARGUMENT_FOR_NULL (clock , RCL_RET_INVALID_ARGUMENT );
146147 RCL_CHECK_ARGUMENT_FOR_NULL (allocator , RCL_RET_INVALID_ARGUMENT );
147- rcl_init_generic_clock (clock );
148+ rcl_init_generic_clock (clock , allocator );
148149 clock -> data = allocator -> allocate (sizeof (rcl_ros_clock_storage_t ), allocator -> state );
149150 if (NULL == clock -> data ) {
150151 RCL_SET_ERROR_MSG ("allocating memory failed" );
@@ -157,7 +158,6 @@ rcl_ros_clock_init(
157158 storage -> active = false;
158159 clock -> get_now = rcl_get_ros_time ;
159160 clock -> type = RCL_ROS_TIME ;
160- clock -> allocator = * allocator ;
161161 return RCL_RET_OK ;
162162}
163163
@@ -186,10 +186,9 @@ rcl_steady_clock_init(
186186{
187187 RCL_CHECK_ARGUMENT_FOR_NULL (clock , RCL_RET_INVALID_ARGUMENT );
188188 RCL_CHECK_ARGUMENT_FOR_NULL (allocator , RCL_RET_INVALID_ARGUMENT );
189- rcl_init_generic_clock (clock );
189+ rcl_init_generic_clock (clock , allocator );
190190 clock -> get_now = rcl_get_steady_time ;
191191 clock -> type = RCL_STEADY_TIME ;
192- clock -> allocator = * allocator ;
193192 return RCL_RET_OK ;
194193}
195194
@@ -213,10 +212,9 @@ rcl_system_clock_init(
213212{
214213 RCL_CHECK_ARGUMENT_FOR_NULL (clock , RCL_RET_INVALID_ARGUMENT );
215214 RCL_CHECK_ARGUMENT_FOR_NULL (allocator , RCL_RET_INVALID_ARGUMENT );
216- rcl_init_generic_clock (clock );
215+ rcl_init_generic_clock (clock , allocator );
217216 clock -> get_now = rcl_get_system_time ;
218217 clock -> type = RCL_SYSTEM_TIME ;
219- clock -> allocator = * allocator ;
220218 return RCL_RET_OK ;
221219}
222220
0 commit comments