[libcamera-devel] [PATCH] meson: Fix usage of overwritten pipeline variable

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon May 8 16:16:13 CEST 2023


Hi Laurent

On Mon, May 08, 2023 at 04:27:09PM +0300, Laurent Pinchart via libcamera-devel wrote:
> When iterating over enabled pipelines and IPA modules, libcamera
> descends into subdirectories in a recursive manner, which involves
> nested loops. Both the outer and inner loops use the same loop variable
> named 'pipeline'. As the outer loop uses the variable after descending
> into the inner directory, it ends up using an incorrect value. Fix it by
> moving all use of the variable before the subdir() call, and add a
> comment that warns about the issue to avoid reintroducing it.
>
> Fixes: e8526c0c2bc6 ("ipa: meson: Allow nested IPA directory structures")
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Oh indeed

After running subdir(pipeline), pipelines is now ['rpi', 'vc4']

Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

> ---
>  src/ipa/meson.build                | 5 ++++-
>  src/libcamera/pipeline/meson.build | 5 ++++-
>  2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/ipa/meson.build b/src/ipa/meson.build
> index 289f861c082d..903eb52ba60f 100644
> --- a/src/ipa/meson.build
> +++ b/src/ipa/meson.build
> @@ -52,8 +52,11 @@ foreach pipeline : pipelines
>          continue
>      endif
>
> -    subdir(pipeline)
>      subdirs += pipeline
> +    subdir(pipeline)
> +
> +    # Don't reuse the pipeline variable below, the subdirectory may have
> +    # overwritten it.
>  endforeach
>
>  # The ipa-sign-install.sh script which uses the enabled_ipa_modules variable
> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build
> index b6160d346cf7..8a61991c0fec 100644
> --- a/src/libcamera/pipeline/meson.build
> +++ b/src/libcamera/pipeline/meson.build
> @@ -12,6 +12,9 @@ foreach pipeline : pipelines
>          continue
>      endif
>
> -    subdir(pipeline)
>      subdirs += pipeline
> +    subdir(pipeline)
> +
> +    # Don't reuse the pipeline variable below, the subdirectory may have
> +    # overwritten it.
>  endforeach
>
> base-commit: 1c512d406536d72a393c38c3f6a75fe0fdb9ecb2
> --
> Regards,
>
> Laurent Pinchart
>


More information about the libcamera-devel mailing list