[igt-dev] [PATCH i-g-t 3/7] igt_list: Add the igt_list_empty_or_null helper

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Wed Jun 29 16:00:11 UTC 2022


On Tue, 28 Jun 2022 11:44:31 +0200
Ryszard Knop <ryszard.knop at intel.com> wrote:

> Checks if the list is empty or uninitialized.

Looking at patch 4/7, I understand why you want this function:

	static bool add_env_var(struct igt_list_head *env_vars, char *env_kv) {
		char *current_env_value, *kv_split;
		struct environment_variable *var = NULL;
...
		if (igt_list_empty_or_null(env_vars))
			IGT_INIT_LIST_HEAD(env_vars);

Yet, I don't like the idea of conditionally initializing env_vars.

IMO, the best would be to always call IGT_INIT_LIST_HEAD(env_vars),
dropping the conditional check at add_env_var().

Regards,
Mauro

> 
> Signed-off-by: Ryszard Knop <ryszard.knop at intel.com>
> ---
>  lib/igt_list.c | 5 +++++
>  lib/igt_list.h | 1 +
>  2 files changed, 6 insertions(+)
> 
> diff --git a/lib/igt_list.c b/lib/igt_list.c
> index 37ae139c..dc94fad8 100644
> --- a/lib/igt_list.c
> +++ b/lib/igt_list.c
> @@ -81,3 +81,8 @@ bool igt_list_empty(const struct igt_list_head *head)
>  {
>  	return head->next == head;
>  }
> +
> +bool igt_list_empty_or_null(const struct igt_list_head *head)
> +{
> +	return head->next == NULL || head->prev == NULL || igt_list_empty(head);
> +}
> diff --git a/lib/igt_list.h b/lib/igt_list.h
> index be63fd80..4efb7a22 100644
> --- a/lib/igt_list.h
> +++ b/lib/igt_list.h
> @@ -80,6 +80,7 @@ void igt_list_move(struct igt_list_head *elem, struct igt_list_head *list);
>  void igt_list_move_tail(struct igt_list_head *elem, struct igt_list_head *list);
>  int igt_list_length(const struct igt_list_head *head);
>  bool igt_list_empty(const struct igt_list_head *head);
> +bool igt_list_empty_or_null(const struct igt_list_head *head);
>  
>  #define igt_container_of(ptr, sample, member)				\
>  	(__typeof__(sample))((char *)(ptr) -				\


More information about the igt-dev mailing list