[RFC PATCH 4/7] telemetry: make array initialization more robust

Tyler Retzlaff roretzla at linux.microsoft.com
Wed Dec 14 18:50:33 CET 2022


On Tue, Dec 13, 2022 at 06:27:27PM +0000, Bruce Richardson wrote:
> Rather than relying on a specific ordering of elements in the array
> matching that of elements in the enum definition, we can explicitly mark
> each array entry using the equivalent enum value as an index.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>  lib/telemetry/telemetry_data.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/telemetry/telemetry_data.c b/lib/telemetry/telemetry_data.c
> index d51724e1f5..9a180937fd 100644
> --- a/lib/telemetry/telemetry_data.c
> +++ b/lib/telemetry/telemetry_data.c
> @@ -16,10 +16,10 @@ int
>  rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type)
>  {
>  	enum tel_container_types array_types[] = {
> -			TEL_ARRAY_STRING, /* RTE_TEL_STRING_VAL = 0 */
> -			TEL_ARRAY_INT,    /* RTE_TEL_INT_VAL = 1 */
> -			TEL_ARRAY_UINT,    /* RTE_TEL_UINT_VAL = 2 */
> -			TEL_ARRAY_CONTAINER, /* RTE_TEL_CONTAINER = 3 */
> +			[RTE_TEL_STRING_VAL] = TEL_ARRAY_STRING,
> +			[RTE_TEL_INT_VAL] = TEL_ARRAY_INT,
> +			[RTE_TEL_UINT_VAL] = TEL_ARRAY_UINT,
> +			[RTE_TEL_CONTAINER] = TEL_ARRAY_CONTAINER,
>  	};

i might be a bit fuzzy and didn't double check but doesn't doing this
require C99?

though it would be great to move to a minimum of C99/C11

>  	d->type = array_types[type];
>  	d->data_len = 0;
> -- 
> 2.34.1


More information about the dev mailing list