[libcamera-devel] [PATCH] utils: ipc: Fix deserialization of multiple fd parameters

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Dec 11 14:45:20 CET 2023


Quoting Paul Elder via libcamera-devel (2023-12-11 10:56:38)
> There was a bug where the code generated for deserialization of function
> parameters would fail if there were multiple file descriptor parameters.

Why? It's hard to decifer that code change. Probably especially as
there's very little context in the patch.

Was it previously not expecting FileDescriptors in the last entry?

> Fix this.

by ... processing the fds on each iteration?

> 
> Bug: https://bugs.libcamera.org/show_bug.cgi?id=205
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
>  utils/ipc/generators/libcamera_templates/proxy_functions.tmpl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl b/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl
> index 2be65d432..b5797b149 100644
> --- a/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl
> +++ b/utils/ipc/generators/libcamera_templates/proxy_functions.tmpl
> @@ -186,7 +186,7 @@ IPADataSerializer<{{param|name}}>::deserialize(
>  {% for param in params|with_fds %}
>  {%- if loop.first %}
>         const size_t {{param.mojom_name}}FdStart = 0;
> -{%- elif not loop.last %}
> +{%- else %}
>         const size_t {{param.mojom_name}}FdStart = {{loop.previtem.mojom_name}}FdStart + {{loop.previtem.mojom_name}}FdsSize;
>  {%- endif %}
>  {%- endfor %}
> -- 
> 2.39.2
>


More information about the libcamera-devel mailing list