[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hard bug caused by window management code?
From: |
martin rudalics |
Subject: |
Re: Hard bug caused by window management code? |
Date: |
Wed, 27 Mar 2013 11:02:52 +0100 |
>> It seems to hang in `set-window-configuration'.
Could you confirm that?
> Now I'm seeing that enormously huge SIZE (3151760 !!!) passed from Lisp
> to Fset_window_new_total
This could come from the following line in delete_all_child_windows
wset_total_lines (w, w->buffer);
which is later on used as
if (BUFFERP (w->total_lines))
wset_buffer (w, w->total_lines);
in `set-window-configuration' and escaped my understanding ever since.
Note the "Kludge Alert" there.
> causes an attempt to allocate appropriately huge
> glyph matrix (window_resize_apply propagates this value from w->new_total
> to w->total_lines, next it's used in window_box_height, and finally in
> required_matrix_height, etc.). So:
>
> 1) Can you check lisp/window.el and find from where this SIZE comes?
See above. I do not have any other clues.
> 2) Shouldn't we check whether SIZE in Fset_window_new_total and
This would be _usually_ caught by window_resize_check. But note that
`set-window-configuration' is special in this regard.
> Fset_window_new_normal isn't too large,
This is a float and should by always <= 1. Any wrong value here should
never have grave implications like the one you observed.
> for example, not larger
> than the appropriate dimension of the frame contains WINDOW?
martin