git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Really *do* nothing in while loop

From
MTMichael Tokarev <mjt@tls.msk.ru>
Date
May 8, 2005, 11:40 UTC
Message-ID
<427DFAB8.5050000@tls.msk.ru>
In-Reply-To
<12e801c553c1$c454ea20$1225a8c0@kittycat>
jdow wrote:
> From: "James Purser" <purserj@ksit.dynalias.com>
> 
   while (deflate(&stream, 0) == Z_OK)
-  /* nothing */
+  /* nothing */;
  stream.next_in = buf;
Show 17 quoted lines
> 
> 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
Previous: jdowNext: Junio C Hamano
Message 6 of 9 in “Really *do* nothing in while loop”
  1. Really *do* nothing in while loopThomas Glanzmann, May 8, 2005
  2. Michael TokarevMay 8, 2005
  3. Thomas GlanzmannMay 8, 2005
  4. James PurserMay 8, 2005
  5. jdowMay 8, 2005
  6. Michael TokarevMay 8, 2005
  7. Junio C HamanoMay 8, 2005
  8. Daniel BarkalowMay 8, 2005
  9. Junio C HamanoMay 8, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.