On Tue, Jun 12, 2012 at 12:53:47PM +1000, Bruce Evans wrote: > On Mon, 11 Jun 2012, Pawel Jakub Dawidek wrote: > > - KASSERT(fd >= 0 && fd < fdp->fd_nfiles, > > + KASSERT((unsigned int)fd < fdp->fd_nfiles, > > ("file descriptor %d out of range (0, %d)", fd, > > fdp->fd_nfiles)); > > return ((fdp->fd_map[NDSLOT(fd)] & NDBIT(fd)) != 0); > > } > > This is backwards. Apart from using the worst possible (most verbose) > spelling of `unsigned', it uses a type hack manually optimize away the > test for fd being < 0. The compiler will do this "optimization" > automatically if it is any good (or undo it if it is not), so all the > hack does is obfuscate the test. With the verbose spelling of u_int, > it even takes more space.
Well, to be honest I presonally would prefer explicit check for fd being less than 0, but my impression was that using cast is the most popular way and I wanted this check to be consistent across our source tree. Feel free to change it. BTW. I really dislike using 'unsigned' with omitted 'int'. u_int is fine. -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl
pgpFmDxXIVhuE.pgp
Description: PGP signature