This change has broken govim which relies on recursive calls working. I'll submit an issue with further details tomorrow
On Thu, 26 Mar 2020, 15:05 Bram Moolenaar, <[email protected]> wrote: > > Patch 8.2.0452 > Problem: channel_parse_messages() fails when called recursively. > Solution: Return for a recursive call. (closes #5835) > Files: src/channel.c > > > *** ../vim-8.2.0451/src/channel.c 2020-03-24 20:35:14.741080390 +0100 > --- src/channel.c 2020-03-26 15:56:02.939711511 +0100 > *************** > *** 4428,4441 **** > int ret = FALSE; > int r; > ch_part_T part = PART_SOCK; > #ifdef ELAPSED_FUNC > elapsed_T start_tv; > - > - ELAPSED_INIT(start_tv); > #endif > > ++safe_to_invoke_callback; > > // Only do this message when another message was given, otherwise we > get > // lots of them. > if ((did_repeated_msg & REPEATED_MSG_LOOKING) == 0) > --- 4428,4449 ---- > int ret = FALSE; > int r; > ch_part_T part = PART_SOCK; > + static int recursive = FALSE; > #ifdef ELAPSED_FUNC > elapsed_T start_tv; > #endif > > + // The code below may invoke callbacks, which might call us back. > + // That doesn't work well, just return without doing anything. > + if (recursive) > + return FALSE; > + recursive = TRUE; > ++safe_to_invoke_callback; > > + #ifdef ELAPSED_FUNC > + ELAPSED_INIT(start_tv); > + #endif > + > // Only do this message when another message was given, otherwise we > get > // lots of them. > if ((did_repeated_msg & REPEATED_MSG_LOOKING) == 0) > *************** > *** 4513,4518 **** > --- 4521,4527 ---- > } > > --safe_to_invoke_callback; > + recursive = FALSE; > > return ret; > } > *** ../vim-8.2.0451/src/version.c 2020-03-26 15:39:50.223238189 +0100 > --- src/version.c 2020-03-26 15:56:59.759509505 +0100 > *************** > *** 740,741 **** > --- 740,743 ---- > { /* Add new patch number below this line */ > + /**/ > + 452, > /**/ > > -- > Windows > M!uqoms > > /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net > \\\ > /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ > \\\ > \\\ an exciting new programming language -- http://www.Zimbu.org > /// > \\\ help me help AIDS victims -- http://ICCF-Holland.org > /// > > -- > -- > You received this message from the "vim_dev" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > > --- > You received this message because you are subscribed to the Google Groups > "vim_dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/vim_dev/202003261505.02QF5V0c000459%40masaka.moolenaar.net > . > -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/CACoUkn4_8-XO79u3v2dRT5ay07Ndb0W45d9%3DcDdxTo%3Drz3RE9Q%40mail.gmail.com.
