On Sat, Sep 19, 2009 at 9:12 AM, Vladimir 'phcoder' Serbinenko
<phco...@gmail.com> wrote:
> Robert Millan wrote:
>> Hi,
>>
>> -Werror is not in effect.  This will help ensuring that all new code is
>> checked to be warning-free before commit (incidentally, I found a newly
>> introduced bug thanks to this just minutes before enabling it).
>>
>>
> If you mean this change:
>
> +  /* Any value different than `p.offset' will satisfy the check during
> +     first loop.  */
> +  lastaddr = !p.offset;
> +
>
> Then there was no bug here.
>      if (labeln && lastaddr == p.offset)
>        return grub_error (GRUB_ERR_BAD_PART_TABLE, "loop detected");
>
>      labeln++;
>      if ((labeln & (labeln - 1)) == 0)

This is a check for being an integral power of 2 (or 0), i.e. having a
single bit set.  Was that the intent?  It's probably worth an
explanatory comment for the sake of those who aren't familiar with the
test.

>        lastaddr = p.offset;
>
> labeln is 0 during first loop run and then lastaddr is set. I explicitly
> omitted initing variables to have smaller loop detector

I suspect initializing lastaddr, which takes place outside the loop,
is less expensive than testing labeln on every iteration.

>> Since -Werror may be a problem in some situations, I've added a
>> --disable-werror switch, which does the obvious thing.
>>
>>
>
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to