string array takes allocator (#338)

This commit is contained in:
Karsten Knese 2017-06-14 11:39:22 -07:00 committed by William Woodall
parent 2847e4aefd
commit f396ff2bac

View file

@ -88,14 +88,15 @@ NodeGraph::get_node_names() const
rcutils_string_array_t node_names_c = rcutils_string_array_t node_names_c =
rcutils_get_zero_initialized_string_array(); rcutils_get_zero_initialized_string_array();
auto allocator = rcl_get_default_allocator();
auto ret = rcl_get_node_names( auto ret = rcl_get_node_names(
node_base_->get_rcl_node_handle(), node_base_->get_rcl_node_handle(),
rcl_get_default_allocator(), allocator,
&node_names_c); &node_names_c);
if (ret != RCL_RET_OK) { if (ret != RCL_RET_OK) {
auto error_msg = std::string("failed to get node names: ") + rcl_get_error_string_safe(); auto error_msg = std::string("failed to get node names: ") + rcl_get_error_string_safe();
rcl_reset_error(); rcl_reset_error();
if (rcutils_string_array_fini(&node_names_c) != RCUTILS_RET_OK) { if (rcutils_string_array_fini(&node_names_c, &allocator) != RCUTILS_RET_OK) {
error_msg += std::string(", failed also to cleanup node names, leaking memory: ") + error_msg += std::string(", failed also to cleanup node names, leaking memory: ") +
rcl_get_error_string_safe(); rcl_get_error_string_safe();
} }
@ -105,7 +106,7 @@ NodeGraph::get_node_names() const
std::vector<std::string> node_names(&node_names_c.data[0], std::vector<std::string> node_names(&node_names_c.data[0],
&node_names_c.data[0 + node_names_c.size]); &node_names_c.data[0 + node_names_c.size]);
ret = rcutils_string_array_fini(&node_names_c); ret = rcutils_string_array_fini(&node_names_c, &allocator);
if (ret != RCUTILS_RET_OK) { if (ret != RCUTILS_RET_OK) {
// *INDENT-OFF* // *INDENT-OFF*
// TODO(karsten1987): Append rcutils_error_message once it's in master // TODO(karsten1987): Append rcutils_error_message once it's in master