Re: [PATCH 5/7] lib: rework bitmap_parse()

From: Yury Norov
Date: Thu May 09 2019 - 22:27:54 EST


Hi Andy,

Thanks for thorough review.

On Wed, May 08, 2019 at 11:46:32AM +0300, Andy Shevchenko wrote:
> On Tue, Apr 30, 2019 at 06:06:34PM -0700, Yury Norov wrote:
> > bitmap_parse() is ineffective and full of opaque variables and opencoded
> > parts. It leads to hard understanding and usage of it. This rework
> > includes:
> > - remove bitmap_shift_left() call from the cycle. Now it makes the
> > complexity of the algorithm as O(nbits^2). In the suggested approach
> > the input string is parsed in reverse direction, so no shifts needed;
> > - relax requirement on a single comma and no white spaces between chunks.
> > It is considered useful in scripting, and it aligns with
> > bitmap_parselist();
> > - split bitmap_parse() to small readable helpers;
> > - make an explicit calculation of the end of input line at the
> > beginning, so users of the bitmap_parse() won't bother doing this.
>
> > +static inline bool in_str(const char *start, const char *ptr)
> > +{
> > + return start <= ptr;
> > +}
> > +
>
> The explicit use of the conditional is better.
>
> --
> With Best Regards,
> Andy Shevchenko

I still think that is_str() is more verbose, but it's minor issue
anyways, so I obey. Below is the patch that removes the function.
It's up to Andrew finally, either apply it or not.

Thanks,
Yury