@@ -27,6 +27,7 @@ extern "C"
27
27
#include "rcl/expand_topic_name.h"
28
28
#include "rcl/remap.h"
29
29
#include "rcutils/logging_macros.h"
30
+ #include "rcutils/macros.h"
30
31
#include "rmw/error_handling.h"
31
32
#include "rmw/validate_full_topic_name.h"
32
33
#include "tracetools/tracetools.h"
@@ -50,6 +51,13 @@ rcl_publisher_init(
50
51
const rcl_publisher_options_t * options
51
52
)
52
53
{
54
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_INVALID_ARGUMENT );
55
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_ALREADY_INIT );
56
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_NODE_INVALID );
57
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_BAD_ALLOC );
58
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_ERROR );
59
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_TOPIC_NAME_INVALID );
60
+
53
61
rcl_ret_t fail_ret = RCL_RET_ERROR ;
54
62
55
63
// Check options and allocator first, so allocator can be used with errors.
@@ -216,6 +224,11 @@ rcl_publisher_init(
216
224
rcl_ret_t
217
225
rcl_publisher_fini (rcl_publisher_t * publisher , rcl_node_t * node )
218
226
{
227
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_PUBLISHER_INVALID );
228
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_NODE_INVALID );
229
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_INVALID_ARGUMENT );
230
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_ERROR );
231
+
219
232
rcl_ret_t result = RCL_RET_OK ;
220
233
RCL_CHECK_ARGUMENT_FOR_NULL (publisher , RCL_RET_PUBLISHER_INVALID );
221
234
if (!rcl_node_is_valid_except_context (node )) {
@@ -286,6 +299,9 @@ rcl_publish(
286
299
const void * ros_message ,
287
300
rmw_publisher_allocation_t * allocation )
288
301
{
302
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_PUBLISHER_INVALID );
303
+ RCUTILS_CAN_RETURN_WITH_ERROR_OF (RCL_RET_ERROR );
304
+
289
305
if (!rcl_publisher_is_valid (publisher )) {
290
306
return RCL_RET_PUBLISHER_INVALID ; // error already set
291
307
}
0 commit comments