Tweaks to client.c and subscription.c for cleaner init/fini (#728) (#822)

Signed-off-by: Stephen Brawner <brawner@gmail.com>
This commit is contained in:
brawner 2020-10-05 13:34:05 -07:00 committed by GitHub
parent 34107decc9
commit 6a137f1aba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 0 deletions

View file

@ -189,6 +189,7 @@ rcl_client_init(
fail: fail:
if (client->impl) { if (client->impl) {
allocator->deallocate(client->impl, allocator->state); allocator->deallocate(client->impl, allocator->state);
client->impl = NULL;
} }
ret = fail_ret; ret = fail_ret;
// Fall through to cleanup // Fall through to cleanup
@ -223,6 +224,7 @@ rcl_client_fini(rcl_client_t * client, rcl_node_t * node)
result = RCL_RET_ERROR; result = RCL_RET_ERROR;
} }
allocator.deallocate(client->impl, allocator.state); allocator.deallocate(client->impl, allocator.state);
client->impl = NULL;
} }
RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Client finalized"); RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Client finalized");
return result; return result;

View file

@ -236,6 +236,7 @@ rcl_publisher_fini(rcl_publisher_t * publisher, rcl_node_t * node)
result = RCL_RET_ERROR; result = RCL_RET_ERROR;
} }
allocator.deallocate(publisher->impl, allocator.state); allocator.deallocate(publisher->impl, allocator.state);
publisher->impl = NULL;
} }
RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Publisher finalized"); RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Publisher finalized");
return result; return result;

View file

@ -193,6 +193,7 @@ rcl_service_init(
fail: fail:
if (service->impl) { if (service->impl) {
allocator->deallocate(service->impl, allocator->state); allocator->deallocate(service->impl, allocator->state);
service->impl = NULL;
} }
ret = fail_ret; ret = fail_ret;
// Fall through to clean up // Fall through to clean up
@ -228,6 +229,7 @@ rcl_service_fini(rcl_service_t * service, rcl_node_t * node)
result = RCL_RET_ERROR; result = RCL_RET_ERROR;
} }
allocator.deallocate(service->impl, allocator.state); allocator.deallocate(service->impl, allocator.state);
service->impl = NULL;
} }
RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Service finalized"); RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME, "Service finalized");
return result; return result;