From: Michael Tokarev Date: Sun, 08 May 2005 11:40:40 GMT Subject: Re: [PATCH] Really *do* nothing in while loop Message-ID: <427DFAB8.5050000@tls.msk.ru> In-Reply-To: <12e801c553c1$c454ea20$1225a8c0@kittycat> jdow wrote: > From: "James Purser" > while (deflate(&stream, 0) == Z_OK) - /* nothing */ + /* nothing */; stream.next_in = buf; > > You guys REALLY do not see the changed semantics here? You are > changing: > while (deflate(&stream, 0) == Z_OK) > stream.next_in = buf; > > into > > while (deflate(&stream, 0) == Z_OK) > ; > /* Then the data itself.. */ > stream.next_in = buf; > > I suspect the results of that tiny bit of code would be slightly > different, especially if "stream.next_in" is volatile, "buf" > is volatile, or if the assignment to next_in has an effect on > the "deflate" operation. As I already said, deflate() in this case does only ONE iteration. stream.avail_in is NOT changed in the loop (except of the deflate() itself, where it will be set to 0 - provided out buffer have enouth room). So the whole while loop does only ONE iteration, returning Z_NEED_DATA or something the next one. So no, the semantics here (actual semantics) does NOT change. /mjt