emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: latest cvs segfault


From: Richard Stallman
Subject: Re: latest cvs segfault
Date: Wed, 11 Dec 2002 12:45:10 -0500

    - backtrace:

    #0  set_cursor_from_row (w=0x92e0818, row=0x0, matrix=0x9399ef8, delta=0, 
        delta_bytes=0, dy=0, dvpos=0) at xdisp.c:9439
    #1  0x0806cef8 in try_window_id (w=0x92e0818) at xdisp.c:11773

That appears to be related to a bug fix I made a few days ago.
row_containing_pos must have returned zero.

The change below may fix the problem, but I am not certain it is
correct.  Anyway, can you please run under GDB all the time, with a
breakpoint set in set_cursor_from_row like this?

  b set_cursor_from_row if row==0

If it stops there, please try calling row_containing_pos the same way
it was called by try_window_id, but step through it and see precisely
why it returns zero.  In particular, what line does it return at?
(Show us the code on and around that line, not just the line number!)
What is the value of MATRIX_ROW_BOTTOM_Y (row) for the last row that
it thinks about?  And what is last_y?  Should it have found PT in the
previous row?


*** xdisp.c.~1.794.~    Sun Dec  8 16:06:46 2002
--- xdisp.c     Tue Dec 10 22:22:07 2002
***************
*** 11514,11520 ****
        /* Give up if we have gone too far.  */
        if (end && row >= end)
        return NULL;
!       if (MATRIX_ROW_BOTTOM_Y (row) >= last_y)
        return NULL;
  
        /* If it is in this row, return this row.  */
--- 11516,11522 ----
        /* Give up if we have gone too far.  */
        if (end && row >= end)
        return NULL;
!       if (MATRIX_ROW_BOTTOM_Y (row) > last_y)
        return NULL;
  
        /* If it is in this row, return this row.  */



reply via email to

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