Skip to content

Commit ce2e72f

Browse files
Replace get_vector_size with {size,get}_function introspection functions
Signed-off-by: Christophe Bedard <[email protected]>
1 parent 50277e3 commit ce2e72f

File tree

5 files changed

+4
-183
lines changed

5 files changed

+4
-183
lines changed

dynmsg/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ add_library(dynmsg STATIC
3838
src/message_reading_c.cpp
3939
src/message_reading_cpp.cpp
4040
src/typesupport.cpp
41-
src/vector_utils.cpp
4241
src/string_utils.cpp
4342
src/yaml_utils.cpp
4443
)
@@ -89,9 +88,6 @@ if(BUILD_TESTING)
8988
ament_add_gtest(wide_strings test/test_wide_strings.cpp)
9089
target_link_libraries(wide_strings dynmsg)
9190

92-
ament_add_gtest(test_vector_utils test/test_vector_utils.cpp)
93-
target_link_libraries(test_vector_utils dynmsg)
94-
9591
ament_add_gtest(test_typesupport test/test_typesupport.cpp)
9692
target_link_libraries(test_typesupport dynmsg)
9793
ament_target_dependencies(test_typesupport std_msgs)

dynmsg/include/dynmsg/vector_utils.hpp

Lines changed: 0 additions & 36 deletions
This file was deleted.

dynmsg/src/message_reading_cpp.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
#include "dynmsg/message_reading.hpp"
2626
#include "dynmsg/string_utils.hpp"
2727
#include "dynmsg/typesupport.hpp"
28-
#include "dynmsg/vector_utils.hpp"
2928

3029
namespace dynmsg
3130
{
@@ -516,21 +515,13 @@ dynamic_array_to_yaml(
516515
array_node);
517516
break;
518517
case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE:
519-
// We do not know the specific type of the sequence because the type is not available at
520-
// compile-time, but we know it's a vector and we know the size of the contained type.
521518
RosMessage_Cpp nested_member;
522519
nested_member.type_info = reinterpret_cast<const TypeInfo_Cpp *>(member_info.members_->data);
523-
uint8_t * element_data;
524-
memcpy(&element_data, member_data, sizeof(void *));
525-
size_t element_size;
526-
element_size = nested_member.type_info->size_of_;
527-
size_t element_count;
528-
element_count = dynmsg::get_vector_size(member_data, element_size);
529-
DYNMSG_DEBUG(std::cout << "\telement_size=" << element_size << std::endl);
530-
DYNMSG_DEBUG(std::cout << "\telement_count=" << element_count << std::endl);
531-
for (size_t ii = 0; ii < element_count; ++ii) {
532-
nested_member.data = element_data + ii * element_size;
520+
void * data;
521+
data = reinterpret_cast<void *>(const_cast<uint8_t *>(member_data));
522+
for (size_t i = 0; i < member_info.size_function(data); i++) {
533523
// Recursively read the nested type into the array element in the YAML representation
524+
nested_member.data = reinterpret_cast<uint8_t *>(member_info.get_function(data, i));
534525
array_node.push_back(message_to_yaml(nested_member));
535526
}
536527
break;

dynmsg/src/vector_utils.cpp

Lines changed: 0 additions & 61 deletions
This file was deleted.

dynmsg/test/test_vector_utils.cpp

Lines changed: 0 additions & 69 deletions
This file was deleted.

0 commit comments

Comments
 (0)