GNU bug report logs -
#16049
24.3.50; Crash on startup on Mac OS X 10.9
Previous Next
Reported by: Jules Colding <colding <at> venalicium.dk>
Date: Wed, 4 Dec 2013 14:08:02 UTC
Severity: normal
Found in version 24.3.50
Done: Jan Djärv <jan.h.d <at> swipnet.se>
Bug is archived. No further changes may be made.
Full log
Message #59 received at 16049 <at> debbugs.gnu.org (full text, mbox):
> The root cause is grow_mini_window in window.c.
>
> It sets w->pixel_height to a large negative value, and it is all downhill from there.
> It is called twice. Right before w->pixel_height += pixel_height;
>
> the values for pixelwise, w->pixel_height, pixel_height, line_height, FRAME_LINE_HEIGTH(f), delta and XINT (height) are:
>
> 1 1 -47 -3 14 13 47
>
> The 1 for w->pixel_height looks wrong.
> This will set w->pixel_height to -46.
> The second call:
>
> 1 -46 -2147483603 .153391685 14 60 0
>
> I'm not sure how this function is supposed to work. pixel_value is negative or it is a huge positive value. Is it relying on overflow?
IIUC this occurs with pixel values not yet assigned. That is, the
minibuffer window still has a line and pixel height of 1 but the frame's
character height has already changed so the relations are wrong.
I had this problem on Windows and did in w32fns.c
/* PXW: This is a duplicate from below. We have to do it here since
otherwise x_set_tool_bar_lines will work with the character sizes
installed by init_frame_faces while the frame's pixel size is still
calculated from a character size of 1 and we subsequently hit the
eassert (height >= 0) assertion in window_box_height. The
non-pixelwise code apparently worked around this because it had one
frame line vs one toolbar line which left us with a zero root
window height which was obviously wrong as well ... */
width = FRAME_TEXT_WIDTH (f);
height = FRAME_TEXT_HEIGHT (f);
FRAME_TEXT_HEIGHT (f) = 0;
SET_FRAME_WIDTH (f, 0);
change_frame_size (f, width, height, 1, 0, 0, 1);
and on GTK where I did in xfns.c completely the same
#ifdef USE_GTK
/* PXW: This is a duplicate from below. We have to do it here since
otherwise x_set_tool_bar_lines will work with the character sizes
installed by init_frame_faces while the frame's pixel size is still
calculated from a character size of 1 and we subsequently hit the
eassert (height >= 0) assertion in window_box_height. The
non-pixelwise code apparently worked around this because it had one
frame line vs one toolbar line which left us with a zero root
window height which was obviously wrong as well ... */
width = FRAME_TEXT_WIDTH (f);
height = FRAME_TEXT_HEIGHT (f);
FRAME_TEXT_HEIGHT (f) = 0;
SET_FRAME_WIDTH (f, 0);
change_frame_size (f, width, height, 1, 0, 0, 1);
#endif /* USE_GTK */
It's a very weird issue but you didn't make it till window_box_height
apparently, so I don't know whether it's related.
martin
This bug report was last modified 11 years and 170 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.