From 1c3069dadc9471da54db7a738abb408e62b01c57 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 17 May 2021 19:01:53 -0300 Subject: [PATCH 1/4] Fix generated code linters Signed-off-by: Ivan Santiago Paunovic --- rosidl_generator_java/resource/action.cpp.em | 5 +++++ rosidl_generator_java/resource/idl.cpp.em | 1 + rosidl_generator_java/resource/idl.java.em | 3 +++ rosidl_generator_java/resource/msg.cpp.em | 7 +++++-- rosidl_generator_java/resource/srv.cpp.em | 6 +++++- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/rosidl_generator_java/resource/action.cpp.em b/rosidl_generator_java/resource/action.cpp.em index 0d3492e4..1cae4e8c 100644 --- a/rosidl_generator_java/resource/action.cpp.em +++ b/rosidl_generator_java/resource/action.cpp.em @@ -1,4 +1,7 @@ @# Included from rosidl_generator_java/resource/idl.cpp.em +// generated from rosidl_generator_java/resource/action.cpp.em +// with input from @(package_name):@(interface_path) +// generated code does not contain a copyright notice @{ import os @@ -16,6 +19,7 @@ get_result_type_name = action.get_result_service.namespaced_type.name data = { 'package_name': package_name, + 'interface_path': interface_path, 'output_dir': output_dir, 'template_basepath': template_basepath, } @@ -60,6 +64,7 @@ expand_template( data = { 'package_name': package_name, + 'interface_path': interface_path, 'output_dir': output_dir, 'template_basepath': template_basepath, 'typesupport_impl': typesupport_impl, diff --git a/rosidl_generator_java/resource/idl.cpp.em b/rosidl_generator_java/resource/idl.cpp.em index c909006a..3f355186 100644 --- a/rosidl_generator_java/resource/idl.cpp.em +++ b/rosidl_generator_java/resource/idl.cpp.em @@ -29,6 +29,7 @@ from rosidl_parser.definition import Service @{ data = { 'package_name': package_name, + 'interface_path': interface_path, 'output_dir': output_dir, 'template_basepath': template_basepath, } diff --git a/rosidl_generator_java/resource/idl.java.em b/rosidl_generator_java/resource/idl.java.em index 9c90c354..4714151d 100644 --- a/rosidl_generator_java/resource/idl.java.em +++ b/rosidl_generator_java/resource/idl.java.em @@ -13,6 +13,9 @@ @####################################################################### @# Handle messages @####################################################################### +// generated from rosidl_generator_java/resource/idl.java.em +// with input from @(package_name):@(interface_path) +// generated code does not contain a copyright notice @{ import os diff --git a/rosidl_generator_java/resource/msg.cpp.em b/rosidl_generator_java/resource/msg.cpp.em index 84c4bb64..2a459384 100644 --- a/rosidl_generator_java/resource/msg.cpp.em +++ b/rosidl_generator_java/resource/msg.cpp.em @@ -1,4 +1,7 @@ @# Included from rosidl_generator_java/resource/idl.cpp.em +// generated from rosidl_generator_java/resource/msg.cpp.em +// with input from @(package_name):@(interface_path) +// generated code does not contain a copyright notice @{ from collections import defaultdict @@ -96,7 +99,7 @@ elif message_c_include_prefix.endswith('__send_goal'): elif message_c_include_prefix.endswith('__get_result'): message_c_include_prefix = message_c_include_prefix[:-12] }@ - +@ #include #include @@ -563,7 +566,7 @@ JNIEXPORT jlong JNICALL Java_@(underscore_separated_jni_type_name)_getToJavaConv JNIEXPORT jlong JNICALL Java_@(underscore_separated_jni_type_name)_getTypeSupport(JNIEnv *, jclass) { - jlong ptr = reinterpret_cast(ROSIDL_GET_MSG_TYPE_SUPPORT(@(','.join(message.structure.namespaced_type.namespaced_name())))); + jlong ptr = reinterpret_cast(ROSIDL_GET_MSG_TYPE_SUPPORT(@(', '.join(message.structure.namespaced_type.namespaced_name())))); return ptr; } diff --git a/rosidl_generator_java/resource/srv.cpp.em b/rosidl_generator_java/resource/srv.cpp.em index 4c13f6b5..d5357025 100644 --- a/rosidl_generator_java/resource/srv.cpp.em +++ b/rosidl_generator_java/resource/srv.cpp.em @@ -1,4 +1,7 @@ @# Included from rosidl_generator_java/resource/idl.cpp.em +// generated from rosidl_generator_java/resource/srv.cpp.em +// with input from @(package_name):@(interface_path) +// generated code does not contain a copyright notice @{ import os from rosidl_cmake import expand_template @@ -11,6 +14,7 @@ response_type_name = service.response_message.structure.namespaced_type.name data = { 'package_name': package_name, + 'interface_path': interface_path, 'output_dir': output_dir, 'template_basepath': template_basepath, } @@ -83,6 +87,6 @@ JNIEXPORT jlong JNICALL Java_@(underscore_separated_jni_type_name)_getServiceTyp JNIEXPORT jlong JNICALL Java_@(underscore_separated_jni_type_name)_getServiceTypeSupport(JNIEnv *, jclass) { const rosidl_service_type_support_t * ts = ROSIDL_GET_SRV_TYPE_SUPPORT( - @(','.join(service_fqn))); + @(', '.join(service_fqn))); return reinterpret_cast(ts); } From 2fe1e170efe6fabc56e4dc952ee00642115048b1 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 17 May 2021 19:16:50 -0300 Subject: [PATCH 2/4] Fix cmake style issues Signed-off-by: Ivan Santiago Paunovic --- ...l_generator_java_generate_interfaces.cmake | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake index 92caebdf..2a8552e4 100644 --- a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake +++ b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake @@ -72,8 +72,10 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) "${_output_path}/${_parent_folder}/${_idl_name}_Response.java" ) foreach(_typesupport_impl ${_typesupport_impls}) - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Request.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Response.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_Request.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_Response.ep.${_typesupport_impl}.cpp") endforeach() endif() # Actions generate extra files @@ -91,21 +93,32 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) "${_output_path}/${_parent_folder}/${_idl_name}_GetResult_Response.java" ) foreach(_typesupport_impl ${_typesupport_impls}) - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Goal.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Result.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Feedback.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_FeedbackMessage.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Request.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Response.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_GetResult.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_GetResult_Request.ep.${_typesupport_impl}.cpp") - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_GetResult_Response.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_Goal.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_Result.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_Feedback.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_FeedbackMessage.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Request.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Response.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_GetResult.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_GetResult_Request.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}_GetResult_Response.ep.${_typesupport_impl}.cpp") endforeach() endif() foreach(_typesupport_impl ${_typesupport_impls}) - list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files + "${_output_path}/${_parent_folder}/${_idl_name}.ep.${_typesupport_impl}.cpp") endforeach() endforeach() From 92a648a1f89798f7358a0867f9adec5ec7f4ba81 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 17 May 2021 19:23:44 -0300 Subject: [PATCH 3/4] More fixes to generated code Signed-off-by: Ivan Santiago Paunovic --- rosidl_generator_java/resource/msg.cpp.em | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rosidl_generator_java/resource/msg.cpp.em b/rosidl_generator_java/resource/msg.cpp.em index 2a459384..85213cce 100644 --- a/rosidl_generator_java/resource/msg.cpp.em +++ b/rosidl_generator_java/resource/msg.cpp.em @@ -102,6 +102,7 @@ elif message_c_include_prefix.endswith('__get_result'): @ #include +#include #include #include #include @@ -268,7 +269,7 @@ jni_signature = get_jni_signature(base_type) auto _dest_@(member.name) = ros_message->@(member.name); @[ end if]@ @[ if isinstance(member.type.value_type, BasicType)]@ - j@(get_java_name) *_jarray_@(member.name)_ptr = env->Get@(get_method_name)ArrayElements(_jarray_@(member.name)_obj, nullptr); + j@(get_java_name) * _jarray_@(member.name)_ptr = env->Get@(get_method_name)ArrayElements(_jarray_@(member.name)_obj, nullptr); std::copy(_jarray_@(member.name)_ptr, _jarray_@(member.name)_ptr + _jarray_@(member.name)_size, _dest_@(member.name)); env->Release@(get_method_name)ArrayElements(_jarray_@(member.name)_obj, _jarray_@(member.name)_ptr, 0); @[ else]@ @@ -381,12 +382,12 @@ jni_signature = get_jni_signature(base_type) @[ if isinstance(member.type.value_type, BasicType)]@ @[ if isinstance(member.type, Array)]@ j@(get_java_name)Array _jarray_@(member.name)_obj = env->New@(get_method_name)Array(@(member.type.size)); - j@(get_java_name) *_j@(get_java_name)_@(member.name)_buf = (j@(get_java_name) *)malloc(sizeof(j@(get_java_name)) * @(member.type.size)); + auto * _j@(get_java_name)_@(member.name)_buf = static_cast(malloc(sizeof(j@(get_java_name)) * @(member.type.size))); std::copy(_ros_message->@(member.name), _ros_message->@(member.name) + @(member.type.size), _j@(get_java_name)_@(member.name)_buf); env->Set@(get_method_name)ArrayRegion(_jarray_@(member.name)_obj, 0, @(member.type.size), (const j@(get_java_name) *)_j@(get_java_name)_@(member.name)_buf); @[ else]@ j@(get_java_name)Array _jarray_@(member.name)_obj = env->New@(get_method_name)Array(_ros_message->@(member.name).size); - j@(get_java_name) *_j@(get_java_name)_@(member.name)_buf = (j@(get_java_name) *)malloc(sizeof(j@(get_java_name)) * _ros_message->@(member.name).size); + auto * _j@(get_java_name)_@(member.name)_buf = static_cast(malloc(sizeof(j@(get_java_name)) * _ros_message->@(member.name).size)); std::copy(_ros_message->@(member.name).data, _ros_message->@(member.name).data + _ros_message->@(member.name).size, _j@(get_java_name)_@(member.name)_buf); env->Set@(get_method_name)ArrayRegion(_jarray_@(member.name)_obj, 0, _ros_message->@(member.name).size, (const j@(get_java_name) *)_j@(get_java_name)_@(member.name)_buf); @[ end if]@ From 35f141c0c65a12f7e00290d2b2c41e7d89debca5 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Mon, 17 May 2021 20:00:37 -0300 Subject: [PATCH 4/4] Even more fixes Signed-off-by: Ivan Santiago Paunovic --- rosidl_generator_java/resource/msg.cpp.em | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rosidl_generator_java/resource/msg.cpp.em b/rosidl_generator_java/resource/msg.cpp.em index 85213cce..fade6a71 100644 --- a/rosidl_generator_java/resource/msg.cpp.em +++ b/rosidl_generator_java/resource/msg.cpp.em @@ -98,6 +98,7 @@ elif message_c_include_prefix.endswith('__send_goal'): message_c_include_prefix = message_c_include_prefix[:-11] elif message_c_include_prefix.endswith('__get_result'): message_c_include_prefix = message_c_include_prefix[:-12] +member_includes.add(f'{message_c_include_prefix}.h') }@ @ #include @@ -116,8 +117,6 @@ elif message_c_include_prefix.endswith('__get_result'): #include "@(include)" @[end for]@ -#include "@(message_c_include_prefix).h" - // Ensure that a jlong is big enough to store raw pointers static_assert(sizeof(jlong) >= sizeof(std::intptr_t), "jlong must be able to store pointers");