Subject: Re: bug#4534: assertion failure at window.c:grow_mini_window

From: martin rudalics <[email-masked]>
Date: Wed, 23 Sep 2009 09:28:17 +0200

> I put the attached files into directory C:\temp, including the file test.el:
 >
 >   (setq resize-mini-windows t)
 >   (setq ido-enable-flex-matching t)
 >   (setq ido-max-prospects 14)
 >   (ido-mode 1)
 >
 > Then,
 >
 >    emacs -Q -l c:/temp/test.el
 >    C-x C-f c:/temp/testfile <TAB> 3 <TAB> 7
 >
 > Emacs aborts. (Note: As the failure depends on the number of lines in
 > the minibuffer, tweaking `ido-max-prospects' and/or adding more files
 > to the directory may be necessary to reproduce the bug.)
 >
 > The xassert (delta >= 0) at the start of window.c:grow_mini_window
 > fails, because delta == -1. In resize_mini_window, the call to
 > xdisp.c:grow_mini_window has height == 5 and WINDOW_TOTAL_LINES (w) ==
 > 6.
 >
 >     Juanma
 >
 >
 >
 > Breakpoint 1, w32_abort () at w32fns.c:7344
 > 7344      button = MessageBox (NULL,
 > (gdb) bt
 > #0  w32_abort () at w32fns.c:7344
 > #1  0x011b929c in grow_mini_window (w=0x2f9ec00, delta=-1) at window.c:4637
 > #2  0x0106d122 in resize_mini_window (w=0x2f9ec00, exact_p=0) at xdisp.c:8809
...

The following part in `resize_mini_window' doesn't strike me as very
elegant in this respect:

	      if (height)
		{
		  freeze_window_starts (f, 1);
		  grow_mini_window (w, height - WINDOW_TOTAL_LINES (w));
		}

Does it cause the bug?  Just comment it out to check.

martin