-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[rosidl_typesupport_introspection_c] Fix get_function and get_const_function semantics for arrays #531
Conversation
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
How about Connext? If it doesn't need the change is its current behavior broken?
Both were using the provided function. And the "weird stuff" was simply accounting the difference in the API - to exactly pass what was needed. Certainly unifying the signature makes sense. |
These changes will also need to be released into Rolling. |
rmw_connexy_dynamic_cpp is not supported, and the code was not handling the semantic difference correctly https://github.com/ros2/rmw_connext/blob/c0a12cd0c6b8a14191763417e2ee13bbd9624492/rmw_connext_dynamic_cpp/src/templates.hpp#L1271.
They weren't using those functions, that was fixed in ros2/rmw_cyclonedds#228, ros2/rmw_fastrtps#429. The code handling the introspection typesupport before those PRs is interesting.
👍 |
I would suggest to still update the code (since it is trivial to do now) and probably hard to figure out that it is needed in the future. |
Yeah, what I mean is that
|
Oh, got it now. Thanks for clarifying. So the behavior must have been broken in the past then. ✅ |
Fixes #522.
For all arrays/sequences/bounded_sequences in rosidl_typesupport_introspection_c/cpp, the following code works:
except for rosidl_typesupport_introspection_c arrays, where the correct code is:
This PR fixes the semantic difference.
The following PRs must be merged simultaneously:
get_function
semantics rmw_cyclonedds#248get_function
semantics rmw_fastrtps#448This error wasn't detected before, because both
rmw_fastrtps_dynamic_cpp
andrmw_cyclonedds_cpp
were doing "weird stuff" instead of using the "get function" and "resize function" provided by the introspection typesupport.For further reference, see:
placement delete
after callingplacement new
rmw_cyclonedds#219