Re: [PATCH 4/6] fixdep: refactor hash table lookup

From: Miguel Ojeda
Date: Tue Jan 03 2023 - 15:46:13 EST


On Sat, Dec 31, 2022 at 7:42 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> +/*
> + * Lookup a string in the hash table. If found, just return true.
> + * If not, add it to the hashtable and return false.
> + */
> +static bool in_hashtable(const char *name, int len, struct item *hashtab[])

I think readers may find a bit surprising that a function named
`in_hashtable` mutates the table. Should we use a better name? Perhaps
`ensure_in_hashtable`?

In other words, the function is really "insert if not already there
and return the previous state". Similar methods in C++ and Rust are
called `insert`, though they return the opposite, i.e. whether the
insertion took place. If we did that, then `insert_into_hashtable` may
be a good name instead.

> + unsigned int hash = strhash(name, len);

Nit: this could be `const`, but I see we are not using it in
`fixdep.c` (for non-pointees) and it was not done in the original. But
it could be nice to start...

Reviewed-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
Tested-by: Miguel Ojeda <ojeda@xxxxxxxxxx>

Cheers,
Miguel