From 6ef26c8133da5e61360db13502be4fef62938723 Mon Sep 17 00:00:00 2001 From: Chen Lihui Date: Tue, 2 Feb 2021 14:28:20 +0800 Subject: [PATCH] Nit. Signed-off-by: Chen Lihui --- rcl/include/rcl/subscription.h | 2 ++ rcl/src/rcl/subscription.c | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/rcl/include/rcl/subscription.h b/rcl/include/rcl/subscription.h index 669a8f096..20b48561c 100644 --- a/rcl/include/rcl/subscription.h +++ b/rcl/include/rcl/subscription.h @@ -286,6 +286,7 @@ rcl_subscription_is_cft_supported(const rcl_subscription_t * subscription); * \return `RCL_RET_INVALID_ARGUMENT` if `filter_expression` is NULL, or * \return `RCL_RET_INCORRECT_RMW_IMPLEMENTATION` if the `node` implementation * identifier does not match this implementation, or + * \return `RCL_RET_UNSUPPORTED` if the implementation does not support content filter topic, or * \return `RCL_RET_ERROR` if an unspecified error occurs. */ RCL_PUBLIC @@ -322,6 +323,7 @@ rcl_subscription_set_cft_expression_parameters( * \return `RCL_RET_INCORRECT_RMW_IMPLEMENTATION` if the `node` implementation * identifier does not match this implementation, or * \return `RCL_RET_BAD_ALLOC` if memory allocation fails, or + * \return `RCL_RET_UNSUPPORTED` if the implementation does not support content filter topic, or * \return `RCL_RET_ERROR` if an unspecified error occurs. */ RCL_PUBLIC diff --git a/rcl/src/rcl/subscription.c b/rcl/src/rcl/subscription.c index 2a6d210ed..49ba60258 100644 --- a/rcl/src/rcl/subscription.c +++ b/rcl/src/rcl/subscription.c @@ -254,6 +254,8 @@ rcl_subscription_options_copy( goto clean; } + dst->rmw_subscription_options.expression_parameters = parameters; + rcutils_ret_t ret = rcutils_string_array_init( parameters, src->rmw_subscription_options.expression_parameters->size, allocator); if (RCUTILS_RET_OK != ret) { @@ -270,8 +272,6 @@ rcl_subscription_options_copy( } parameters->data[i] = parameter; } - - dst->rmw_subscription_options.expression_parameters = parameters; } return RCL_RET_OK; @@ -300,7 +300,9 @@ rcl_subscription_options_fini(rcl_subscription_options_t * option) if (option->rmw_subscription_options.expression_parameters) { rcutils_ret_t ret = rcutils_string_array_fini( option->rmw_subscription_options.expression_parameters); - assert(ret == RCUTILS_RET_OK); + if (RCUTILS_RET_OK != ret) { + RCUTILS_SAFE_FWRITE_TO_STDERR("Failed to fini string array.\n"); + } allocator->deallocate(option->rmw_subscription_options.expression_parameters, allocator->state); option->rmw_subscription_options.expression_parameters = NULL; } @@ -311,7 +313,8 @@ bool rcl_subscription_is_cft_supported(const rcl_subscription_t * subscription) { if (!rcl_subscription_is_valid(subscription)) { - return false; // error message already set + rcl_reset_error(); + return false; } return subscription->impl->rmw_handle->is_cft_supported; }