Subject: Re: bug#16049: 24.3.50; xdisp.c infloop on Mac OS X 10.9
From: Jan Djärv <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: martin rudalics <[email-masked]>, Jules Colding <[email-masked]>, [email-masked]
Date: Sat, 7 Dec 2013 15:26:46 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello.

7 dec 2013 kl. 10:16 skrev Eli Zaretskii <[email-masked]>:

>> From: Jan Djärv <[email-masked]>
>> Date: Sat, 7 Dec 2013 09:25:29 +0100
>> Cc: Eli Zaretskii <[email-masked]>,
>> Jules Colding <[email-masked]>,
>> [email-masked]
>> 
>> Next problem, infloop in move_it_vertically_backward, xdisp.c
>> 
>> It just keeps going back to move_further_back: but no values are actually changed in the code inbetween.  I don't know whats bad here, values looks fine to me.  window_box_height is called
>> and returns 490, which is the pixel size.
>> 
>> Backtrace:
> 
> Here's one sign of the trouble:
> 
>> 	nchars_per_row = 0
> 
> This is the number of canonical-width characters that fit in a full
> screen line, which obviously cannot be zero.  It is computed at the
> beginning of move_it_vertically_backward like this:
> 
>  int nchars_per_row
>    = (it->last_visible_x - it->first_visible_x) / FRAME_COLUMN_WIDTH (it->f);
> 
> So now we look for the values of it->last_visible_x and
> it->first_visible_x.  The contents of it are not available in "bt
> full", but there are locals it2 and it3, which use copies of the same
> metrics.  And here we find this:
> 
>  first_visible_x = 2147483643, 
>  last_visible_x = 2147483642, 
> 
> which is obviously bogus, since those are supposed to be the pixel
> coordinates of the first screen-line pixel shown at the left edge of
> the window (usually zero, but can be positive when lines are truncated
> and the window is hscrolled), and of the last screen-line pixel shown
> at the right edge.

There was a mixup with pixels and columns. I think I fixed this now, but I will have to adjust for GNUStep.  But I'm closing this bug.

Thanks Eli and Martin for all the help.

	Jan D.