Subject: bug#56561: 29.0.50; Infloop in try_window

From: Eli Zaretskii <[email-masked]>
Date: Sat, 16 Jul 2022 08:50:25 +0300

> From: Po Lu <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sat, 16 Jul 2022 11:15:55 +0800
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > No, that's wrong: we call update_single_window there, and that
> > requires a window with a desired matrix set up correctly.  So yes, the
> > call to try_window is still needed.
> 
> Indeed.  So would you prefer an assertion in try_window

Not sure which assertion you had in mind.  It cannot be easily done
inside try_window, because that function is called from many places
unrelated to tooltips.

What I had in mind is an assertion in x-show-tip that the glyph matrix
produced by try_window includes all of the tooltip text, i.e. that
there's a glyph row there whose ends_at_zv_p flag is set.  This is an
indication that all of the text was processed and will appear in the
tooltip.

Note that in the case in point this is precisely what's happened: the
entire text of the tip was processed and produced its glyphs, and the
problem happened while try_window was producing empty glyph rows
beyond ZV.

> or a call to adjust_frame_glyphs if it fails?

No, because as I explained in my message, I don't think this should
be needed.  If the above assertion ever triggers, we will see what
kind of situation causes it, and can then discuss solutions.