summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorBarnabás Pőcze <barnabas.pocze@ideasonboard.com>2025-03-26 09:37:08 +0100
committerBarnabás Pőcze <barnabas.pocze@ideasonboard.com>2025-04-22 20:52:42 +0200
commite1818265aeae36d17a3f7e4fca5c115cffd3bf80 (patch)
tree4c7d062571955840554ea6c591f0360a3fa6dbed /utils
parentf31da7272eb0d8dfcd551057b24b5ca4f6985713 (diff)
utils: ipc: Do not define variables in signal handler up front
Defining the variables at the beginning of the function forces the types to be default constructible, which may not be desirable; furthermore, it also forces the move/copy assignment operator to be used when the deserialized value is retrieved. Having `T val = f()` has the advantage of benefitting from potential RVO as well as not requiring `T` to be default constructible, so generate code in that form by calling `deserialize_call()` with `declare=true`. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl5
1 files changed, 1 insertions, 4 deletions
diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
index ce3cc5ab..07165821 100644
--- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
+++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
@@ -239,10 +239,7 @@ void {{proxy_name}}::{{method.mojom_name}}IPC(
[[maybe_unused]] size_t dataSize,
[[maybe_unused]] const std::vector<SharedFD> &fds)
{
-{%- for param in method.parameters %}
- {{param|name}} {{param.mojom_name}};
-{%- endfor %}
-{{proxy_funcs.deserialize_call(method.parameters, 'data', 'fds', false, false, true, 'dataSize')}}
+{{proxy_funcs.deserialize_call(method.parameters, 'data', 'fds', false, true, true, 'dataSize')}}
{{method.mojom_name}}.emit({{method.parameters|params_comma_sep}});
}
{% endfor %}