emacs-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]