Date: Tue, 12 Jun 2012 13:51:17 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Bruce Evans <brde@optusnet.com.au> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r236917 - head/sys/kern Message-ID: <20120612115117.GB1372@garage.freebsd.pl> In-Reply-To: <20120612114254.V1572@besplex.bde.org> References: <201206112017.q5BKHKsW007722@svn.freebsd.org> <20120612114254.V1572@besplex.bde.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
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
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)
iEYEARECAAYFAk/XLTUACgkQForvXbEpPzQdtwCeL7L3KaM0pzUYkeBh5sQlMwLF
1R8AoNuKc1sL06wQmXFQ6BqoqKunbk7c
=9mtg
-----END PGP SIGNATURE-----
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120612115117.GB1372>
