[bitbake-devel] [PATCH] fetch2: Cleanup file checksum generation
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Apr 28 12:24:56 UTC 2014
On Monday 28 April 2014 13:08:06 Paul Eggleton wrote:
> On Monday 28 April 2014 13:55:48 Jacob Kroon wrote:
> > On Mon, Apr 28, 2014 at 1:23 PM, Paul Eggleton <
> >
> > paul.eggleton at linux.intel.com> wrote:
> > > On Saturday 26 April 2014 16:32:18 Jacob Kroon wrote:
> > > > Cleanup the fix done in f9416e76e272ba3249abff099f6f3a47fe82e03e.
> > > >
> > > > Instead of adding continue statements we can just move the last
> > > > statements into the final else-clause.
> > > >
> > > > Signed-off-by: Jacob Kroon <jacob.kroon at mikrodidakt.se>
> > > > ---
> > > >
> > > > lib/bb/fetch2/__init__.py | 7 ++-----
> > > > 1 file changed, 2 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
> > > > index 5a03a0e..bc4e8fd 100644
> > > > --- a/lib/bb/fetch2/__init__.py
> > > > +++ b/lib/bb/fetch2/__init__.py
> > > >
> > > > @@ -985,15 +985,12 @@ def get_file_checksums(filelist, pn):
> > > > checksum = checksum_file(f)
> > > >
> > > > if checksum:
> > > > checksums.append((f, checksum))
> > >
> > > Note the above, then see below.
> > >
> > > > - continue
> > > >
> > > > elif os.path.isdir(pth):
> > > > checksums.extend(checksum_dir(pth))
> > > >
> > > > - continue
> > > >
> > > > else:
> > > > checksum = checksum_file(pth)
> > > >
> > > > -
> > > > - if checksum:
> > > > - checksums.append((pth, checksum))
> > > > + if checksum:
> > > > + checksums.append((pth, checksum))
> > > >
> > > > checksums.sort(key=operator.itemgetter(1))
> > > > return checksums
> > >
> > > This cleanup seems innocuous but unfortunately it does cause a change in
> > > behaviour - now for the glob case we will get the last item duplicated
> > > because
> > > it will be added to the list a second time at the end.
> >
> > Sorry..
> > But I can't see why this would cause a different behaviour. Both previous
> > 'continue' statements applied to the outer for-loop. Unless they have an
> > effect on the if-statements aswell ?
>
> Because if we expand a glob we add each expanded item to the list, but
> because we use the "checksum" variable in that inner loop as well it will
> be left assigned to the last added item; thus without the continue when it
> is checked again at the end it will still be assigned and will add it to
> the list a second time.
Oops, it seems I missed that the second checksums.append() is now part of the
else block and thus I'm talking complete nonsense above. No need to revert.
Sorry for the noise...
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the bitbake-devel
mailing list