Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2004 23:10:58 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Andre Oppermann <andre@freebsd.org>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Socket selection.
Message-ID:  <20040520211058.GX845@darkness.comp.waw.pl>
In-Reply-To: <40AD1CBA.4CB46233@freebsd.org>
References:  <20040520173012.GR845@darkness.comp.waw.pl> <40AD1CBA.4CB46233@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Thu, May 20, 2004 at 11:01:46PM +0200, Andre Oppermann wrote:
+> Pawel Jakub Dawidek wrote:
+> > 
+> > Hello.
+> > 
+> > In in_pcblookup_hash() function, in the last loop if we find exact
+> > match, we return immediately, if it is "wild", we store a pointer and
+> > we countinue looking for exact match.
+> > I wonder if this is ok, that we change pointer every time we find a
+> > "wild" match. Is it inteded? Shouldn't it be:
+> > 
+> >         http://people.freebsd.org/~pjd/patches/in_pcb.c.2.patch
+> 
+> No.  This is a stack variable which is unconditionally initialized to
+> NULL a few lines earlier.  Checking for variable == NULL is always
+> going to be true and makes your 'optimization' just redundand.

But we have loop there:

	local_wild = NULL;
	[...]
	LIST_FOREACH(...) {
		[...]
		local_wild = <something>;
		[...]
	}

Isn't that possible that local_wild will be set few times?

+> > While I'm here, I want to improve code readability a bit:
+> > 
+> >         http://people.freebsd.org/~pjd/patches/in_pcb.c.3.patch
+> > 
+> > Is it ok?
+> 
+> No.  You change the logic of the 'if' statements to something totally
+> different.  This ain't going to work in any way.

Hmm, no:

for (...) {
	if (a == b && c == d) {
		/* do something */
	}
	/* nothing here */
}

is equivalent to:

for (...) {
	if (a != b || c != d)
		continue;
	/* do something */
}

isn't it?

-- 
Pawel Jakub Dawidek                       http://www.FreeBSD.org
pjd@FreeBSD.org                           http://garage.freebsd.pl
FreeBSD committer                         Am I Evil? Yes, I Am!

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFArR7iForvXbEpPzQRAt/BAJoCHKo4w3fVXfRd8vIIhwj5V9NM/ACaApAM
dSy1/HgFoYXDGBrp9GKstUw=
=Q0QC
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040520211058.GX845>