From c3be1d91b5dfe44cc6b30d44bda2b7e5bbb4df90 Mon Sep 17 00:00:00 2001 From: Stephen Brawner Date: Tue, 28 Jul 2020 17:22:51 -0700 Subject: [PATCH] Tweaks to client.c and subscription.c for cleaner init/fini Signed-off-by: Stephen Brawner --- rcl/src/rcl/client.c | 2 ++ rcl/src/rcl/publisher.c | 1 + rcl/src/rcl/service.c | 2 ++ rcl/src/rcl/subscription.c | 2 ++ 4 files changed, 7 insertions(+) diff --git a/rcl/src/rcl/client.c b/rcl/src/rcl/client.c index 9bf70dc4a2..6a6a51001d 100644 --- a/rcl/src/rcl/client.c +++ b/rcl/src/rcl/client.c @@ -189,6 +189,7 @@ rcl_client_init( fail: if (client->impl) { allocator->deallocate(client->impl, allocator->state); + client->impl = NULL; } ret = fail_ret; // Fall through to cleanup @@ -223,6 +224,7 @@ rcl_client_fini(rcl_client_t * client, rcl_node_t * node) result = RCL_RET_ERROR; } allocator.deallocate(client->impl, allocator.state); + client->impl = NULL; } RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Client finalized"); return result; diff --git a/rcl/src/rcl/publisher.c b/rcl/src/rcl/publisher.c index 62bf16b4e5..6aea8f6740 100644 --- a/rcl/src/rcl/publisher.c +++ b/rcl/src/rcl/publisher.c @@ -236,6 +236,7 @@ rcl_publisher_fini(rcl_publisher_t * publisher, rcl_node_t * node) result = RCL_RET_ERROR; } allocator.deallocate(publisher->impl, allocator.state); + publisher->impl = NULL; } RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Publisher finalized"); return result; diff --git a/rcl/src/rcl/service.c b/rcl/src/rcl/service.c index 6dc1c79fcc..cf7de3c4e4 100644 --- a/rcl/src/rcl/service.c +++ b/rcl/src/rcl/service.c @@ -193,6 +193,7 @@ rcl_service_init( fail: if (service->impl) { allocator->deallocate(service->impl, allocator->state); + service->impl = NULL; } ret = fail_ret; // Fall through to clean up @@ -228,6 +229,7 @@ rcl_service_fini(rcl_service_t * service, rcl_node_t * node) result = RCL_RET_ERROR; } allocator.deallocate(service->impl, allocator.state); + service->impl = NULL; } RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Service finalized"); return result; diff --git a/rcl/src/rcl/subscription.c b/rcl/src/rcl/subscription.c index 2e3b37d384..83288ff683 100644 --- a/rcl/src/rcl/subscription.c +++ b/rcl/src/rcl/subscription.c @@ -194,6 +194,7 @@ rcl_subscription_init( fail: if (subscription->impl) { allocator->deallocate(subscription->impl, allocator->state); + subscription->impl = NULL; } ret = fail_ret; // Fall through to cleanup @@ -229,6 +230,7 @@ rcl_subscription_fini(rcl_subscription_t * subscription, rcl_node_t * node) result = RCL_RET_ERROR; } allocator.deallocate(subscription->impl, allocator.state); + subscription->impl = NULL; } RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Subscription finalized"); return result;